Commit bd9f998d authored by Raymond's avatar Raymond Committed by laurent

added BG2 files for 128-bit ldpc encoder (aarch64)

parent 58204291
...@@ -37,7 +37,6 @@ ...@@ -37,7 +37,6 @@
#define UNROLL_BN_PROC 1 #define UNROLL_BN_PROC 1
#define UNROLL_BN_PROC_PC 1 #define UNROLL_BN_PROC_PC 1
#define UNROLL_BN2CN_PROC 1 #define UNROLL_BN2CN_PROC 1
#define __AVX2__ 1
/*---------------------------------------------------------------------- /*----------------------------------------------------------------------
| cn processing files -->AVX512 | cn processing files -->AVX512
/----------------------------------------------------------------------*/ /----------------------------------------------------------------------*/
......
/*
* 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
*/
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include "../../nrLDPCdecoder_defs.h"
#include "../../nrLDPC_types.h"
void nrLDPC_bnProcPc_BG1_generator_128(const char *dir, 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[FILENAME_MAX+1];
snprintf(fname, sizeof(fname), "%s/bnProcPc128/nrLDPC_bnProcPc_BG1_R%s_128.h", dir, ratestr[R]);
FILE *fd=fopen(fname,"w");
if (fd == NULL) {
printf("Cannot create file %s\n", fname);
abort();
}
fprintf(fd,"#include <stdint.h>\n");
fprintf(fd,"#include \"PHY/sse_intrin.h\"\n");
fprintf(fd,"static inline void nrLDPC_bnProcPc_BG1_R%s_128(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;
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();}
// Number of BNs in Groups
uint32_t k;
// Offset to each bit within a group in terms of 32 Byte
uint32_t cnOffsetInGroup;
uint8_t idxBnGroup = 0;
fprintf(fd," // Process group with 1 CN\n");
fprintf(fd," uint32_t M = (%d*Z + 15)>>4;\n",lut_numBnInBnGroups[0]);
fprintf(fd," simde__m128i* p_bnProcBuf = (simde__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups [idxBnGroup]);
fprintf(fd," simde__m128i* p_bnProcBufRes = (simde__m128i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups [idxBnGroup]);
fprintf(fd," simde__m128i* p_llrProcBuf = (simde__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
fprintf(fd," simde__m128i* p_llrRes = (simde__m128i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
fprintf(fd," simde__m128i ymm0, ymm1, ymmRes0, ymmRes1;\n");
fprintf(fd," for (int i=0;i<M;i++) {\n");
fprintf(fd," p_bnProcBufRes[i] = p_llrProcBuf[i];\n");
fprintf(fd," ymm0 = simde_mm_cvtepi8_epi16(p_bnProcBuf [i]);\n");
fprintf(fd," ymm1 = simde_mm_cvtepi8_epi16(p_llrProcBuf[i]);\n");
fprintf(fd," ymmRes0 = simde_mm_adds_epi16(ymm0, ymm1);\n");
fprintf(fd," ymm0 = simde_mm_cvtepi8_epi16(simde_mm_srli_si128(p_bnProcBuf [i],8));\n");
fprintf(fd," ymm1 = simde_mm_cvtepi8_epi16(simde_mm_srli_si128(p_llrProcBuf[i],8));\n");
fprintf(fd," ymmRes1 = simde_mm_adds_epi16(ymm0, ymm1);\n");
fprintf(fd," *p_llrRes = simde_mm_packs_epi16(ymmRes0, ymmRes1);\n");
fprintf(fd," p_llrRes++;\n");
fprintf(fd," }\n");
for (uint32_t cnidx=1;cnidx<30;cnidx++) {
// Process group with 4 CNs
if (lut_numBnInBnGroups[cnidx] > 0)
{
// If elements in group move to next address
idxBnGroup++;
fprintf(fd," M = (%d*Z + 15)>>4;\n",lut_numBnInBnGroups[cnidx]);
// Set the offset to each CN within a group in terms of 16 Byte
cnOffsetInGroup = (lut_numBnInBnGroups[cnidx]*NR_LDPC_ZMAX)>>4;
// Set pointers to start of group 2
fprintf(fd," p_bnProcBuf = (simde__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
fprintf(fd," p_llrProcBuf = (simde__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
fprintf(fd," p_llrRes = (simde__m128i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
// Loop over BNs
fprintf(fd," for (int i=0;i<M;i++) {\n");
// First 16 LLRs of first CN
fprintf(fd," ymmRes0 = simde_mm_cvtepi8_epi16(p_bnProcBuf [i]);\n");
fprintf(fd," ymmRes1 = simde_mm_cvtepi8_epi16(simde_mm_srli_si128(p_bnProcBuf [i],8));\n");
// Loop over CNs
for (k=1; k<=cnidx; k++)
{
fprintf(fd," ymm0 = simde_mm_cvtepi8_epi16(p_bnProcBuf[%d + i]);\n", k*cnOffsetInGroup);
fprintf(fd," ymmRes0 = simde_mm_adds_epi16(ymmRes0, ymm0);\n");
fprintf(fd," ymm1 = simde_mm_cvtepi8_epi16(simde_mm_srli_si128(p_bnProcBuf[%d + i],8));\n", k*cnOffsetInGroup);
fprintf(fd, " ymmRes1 = simde_mm_adds_epi16(ymmRes1, ymm1); \n");
}
// Add LLR from receiver input
fprintf(fd," ymm0 = simde_mm_cvtepi8_epi16(p_llrProcBuf[i]);\n");
fprintf(fd," ymmRes0 = simde_mm_adds_epi16(ymmRes0, ymm0);\n");
fprintf(fd," ymm1 = simde_mm_cvtepi8_epi16(simde_mm_srli_si128(p_llrProcBuf[i],8));\n");
fprintf(fd," ymmRes1 = simde_mm_adds_epi16(ymmRes1, ymm1);\n");
// Pack results back to epi8
fprintf(fd," *p_llrRes = simde_mm_packs_epi16(ymmRes0, ymmRes1);\n");
fprintf(fd," p_llrRes++;\n");
fprintf(fd," }\n");
}
}
fprintf(fd,"}\n");
fclose(fd);
}//end of the function nrLDPC_bnProcPc_BG1
/*
* 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
*/
#include <stdio.h>
#include <stdint.h>
#include "PHY/sse_intrin.h"
#include "../../nrLDPCdecoder_defs.h"
#include "../../nrLDPC_types.h"
void nrLDPC_bnProcPc_BG2_generator_128(const char *dir, int R)
{
const char *ratestr[3]={"15","13","23"};
if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();}
// system("mkdir -p ../ldpc_gen_files");
char fname[FILENAME_MAX+1];
snprintf(fname, sizeof(fname), "%s/bnProcPc128/nrLDPC_bnProcPc_BG2_R%s_128.h", dir, ratestr[R]);
FILE *fd=fopen(fname,"w");
if (fd == NULL) {
printf("Cannot create file %s\n", fname);
abort();
}
fprintf(fd,"#include <stdint.h>\n");
fprintf(fd,"#include \"PHY/sse_intrin.h\"\n");
fprintf(fd,"static inline void nrLDPC_bnProcPc_BG2_R%s_128(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;
if (R==0) {
lut_numBnInBnGroups = lut_numBnInBnGroups_BG2_R15;
lut_startAddrBnGroups = lut_startAddrBnGroups_BG2_R15;
lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG2_R15;
}
else if (R==1){
lut_numBnInBnGroups = lut_numBnInBnGroups_BG2_R13;
lut_startAddrBnGroups = lut_startAddrBnGroups_BG2_R13;
lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG2_R13;
}
else if (R==2) {
lut_numBnInBnGroups = lut_numBnInBnGroups_BG2_R23;
lut_startAddrBnGroups = lut_startAddrBnGroups_BG2_R23;
lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG2_R23;
}
else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();}
// Number of BNs in Groups
uint32_t k;
// Offset to each bit within a group in terms of 32 Byte
uint32_t cnOffsetInGroup;
uint8_t idxBnGroup = 0;
fprintf(fd," // Process group with 1 CN\n");
fprintf(fd," uint32_t M = (%d*Z + 15)>>4;\n",lut_numBnInBnGroups[0]);
fprintf(fd," simde__m128i* p_bnProcBuf = (simde__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups [idxBnGroup]);
fprintf(fd," simde__m128i* p_bnProcBufRes = (simde__m128i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups [idxBnGroup]);
fprintf(fd," simde__m128i* p_llrProcBuf = (simde__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
fprintf(fd," simde__m128i* p_llrRes = (simde__m128i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
fprintf(fd," simde__m128i ymm0, ymm1, ymmRes0, ymmRes1;\n");
fprintf(fd," for (int i=0;i<M;i++) {\n");
fprintf(fd," p_bnProcBufRes[i] = p_llrProcBuf[i];\n");
fprintf(fd," ymm0 = simde_mm_cvtepi8_epi16(p_bnProcBuf [i]);\n");
fprintf(fd," ymm1 = simde_mm_cvtepi8_epi16(p_llrProcBuf[i]);\n");
fprintf(fd," ymmRes0 = simde_mm_adds_epi16(ymm0, ymm1);\n");
fprintf(fd," ymm0 = simde_mm_cvtepi8_epi16(simde_mm_srli_si128(p_bnProcBuf [i],8));\n");
fprintf(fd," ymm1 = simde_mm_cvtepi8_epi16(simde_mm_srli_si128(p_llrProcBuf[i],8));\n");
fprintf(fd," ymmRes1 = simde_mm_adds_epi16(ymm0, ymm1);\n");
fprintf(fd," *p_llrRes = simde_mm_packs_epi16(ymmRes0, ymmRes1);\n");
fprintf(fd," p_llrRes++;\n");
fprintf(fd," }\n");
for (uint32_t cnidx=1;cnidx<30;cnidx++) {
// Process group with 4 CNs
if (lut_numBnInBnGroups[cnidx] > 0)
{
// If elements in group move to next address
idxBnGroup++;
fprintf(fd," M = (%d*Z + 15)>>4;\n",lut_numBnInBnGroups[cnidx]);
// Set the offset to each CN within a group in terms of 16 Byte
cnOffsetInGroup = (lut_numBnInBnGroups[cnidx]*NR_LDPC_ZMAX)>>4;
// Set pointers to start of group 2
fprintf(fd," p_bnProcBuf = (simde__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]);
fprintf(fd," p_llrProcBuf = (simde__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
fprintf(fd," p_llrRes = (simde__m128i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]);
// Loop over BNs
fprintf(fd," for (int i=0;i<M;i++) {\n");
// First 16 LLRs of first CN
fprintf(fd," ymmRes0 = simde_mm_cvtepi8_epi16(p_bnProcBuf [i]);\n");
fprintf(fd," ymmRes1 = simde_mm_cvtepi8_epi16(simde_mm_srli_si128(p_bnProcBuf [i],8));\n");
// Loop over CNs
for (k=1; k<=cnidx; k++)
{
fprintf(fd," ymm0 = simde_mm_cvtepi8_epi16(p_bnProcBuf[%d + i]);\n", k*cnOffsetInGroup);
fprintf(fd," ymmRes0 = simde_mm_adds_epi16(ymmRes0, ymm0);\n");
fprintf(fd," ymm1 = simde_mm_cvtepi8_epi16(simde_mm_srli_si128(p_bnProcBuf[%d + i],8));\n", k*cnOffsetInGroup);
fprintf(fd, " ymmRes1 = simde_mm_adds_epi16(ymmRes1, ymm1); \n");
}
// Add LLR from receiver input
fprintf(fd," ymm0 = simde_mm_cvtepi8_epi16(p_llrProcBuf[i]);\n");
fprintf(fd," ymmRes0 = simde_mm_adds_epi16(ymmRes0, ymm0);\n");
fprintf(fd," ymm1 = simde_mm_cvtepi8_epi16(simde_mm_srli_si128(p_llrProcBuf[i],8));\n");
fprintf(fd," ymmRes1 = simde_mm_adds_epi16(ymmRes1, ymm1);\n");
// Pack results back to epi8
fprintf(fd," *p_llrRes = simde_mm_packs_epi16(ymmRes0, ymmRes1);\n");
fprintf(fd," p_llrRes++;\n");
fprintf(fd," }\n");
}
}
fprintf(fd,"}\n");
fclose(fd);
}//end of the function nrLDPC_bnProcPc_BG2
/*
* 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
*/
#include <stdio.h>
#include <stdint.h>
#define NB_R 3
void nrLDPC_bnProc_BG1_generator_128(const char*, int);
void nrLDPC_bnProc_BG2_generator_128(const char*, int);
void nrLDPC_bnProcPc_BG1_generator_128(const char*, int);
void nrLDPC_bnProcPc_BG2_generator_128(const char*, int);
const char *__asan_default_options()
{
/* don't do leak checking in nr_ulsim, creates problems in the CI */
return "detect_leaks=0";
}
int main(int argc, char *argv[])
{
if (argc != 2) {
fprintf(stderr, "usage: %s <output-dir>\n", argv[0]);
return 1;
}
const char *dir = argv[1];
int R[NB_R]={0,1,2};
for(int i=0; i<NB_R;i++){
nrLDPC_bnProc_BG1_generator_128(dir, R[i]);
nrLDPC_bnProc_BG2_generator_128(dir, R[i]);
nrLDPC_bnProcPc_BG1_generator_128(dir, R[i]);
nrLDPC_bnProcPc_BG2_generator_128(dir, R[i]);
}
return(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
*/
#include <stdio.h>
#include <stdint.h>
#define NB_R 3
void nrLDPC_cnProc_BG1_generator_128(const char*, int);
void nrLDPC_cnProc_BG2_generator_128(const char*, int);
const char *__asan_default_options()
{
/* don't do leak checking in nr_ulsim, creates problems in the CI */
return "detect_leaks=0";
}
int main(int argc, char *argv[])
{
if (argc != 2) {
fprintf(stderr, "usage: %s <output-dir>\n", argv[0]);
return 1;
}
const char *dir = argv[1];
int R[NB_R]={0,1,2};
for(int i=0; i<NB_R;i++) {
nrLDPC_cnProc_BG1_generator_128(dir, R[i]);
nrLDPC_cnProc_BG2_generator_128(dir, R[i]);
}
return(0);
}
...@@ -150,4 +150,4 @@ static inline void ldpc192_byte(uint8_t *c,uint8_t *d) { ...@@ -150,4 +150,4 @@ static inline void ldpc192_byte(uint8_t *c,uint8_t *d) {
d2[270]=simde_mm256_xor_si256(c2[1864],simde_mm256_xor_si256(c2[5620],c2[4080])); d2[270]=simde_mm256_xor_si256(c2[1864],simde_mm256_xor_si256(c2[5620],c2[4080]));
} }
} }
#endif __AVX2__ #endif
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
#ifdef __AVX2__
#include "PHY/sse_intrin.h" #include "PHY/sse_intrin.h"
// generated code for Zc=128, byte encoding // generated code for Zc=128, byte encoding
static inline void ldpc_BG2_Zc128_byte(uint8_t *c,uint8_t *d) { static inline void ldpc_BG2_Zc128_byte(uint8_t *c,uint8_t *d) {
...@@ -137,3 +138,4 @@ static inline void ldpc_BG2_Zc128_byte(uint8_t *c,uint8_t *d) { ...@@ -137,3 +138,4 @@ static inline void ldpc_BG2_Zc128_byte(uint8_t *c,uint8_t *d) {
d2[164]=simde_mm256_xor_si256(c2[2483],simde_mm256_xor_si256(c2[2403],simde_mm256_xor_si256(c2[2240],simde_mm256_xor_si256(c2[482],simde_mm256_xor_si256(c2[891],simde_mm256_xor_si256(c2[811],simde_mm256_xor_si256(c2[571],simde_mm256_xor_si256(c2[2331],simde_mm256_xor_si256(c2[88],simde_mm256_xor_si256(c2[178],simde_mm256_xor_si256(c2[98],simde_mm256_xor_si256(c2[1217],simde_mm256_xor_si256(c2[1304],simde_mm256_xor_si256(c2[1224],simde_mm256_xor_si256(c2[2184],simde_mm256_xor_si256(c2[105],simde_mm256_xor_si256(c2[1475],simde_mm256_xor_si256(c2[753],simde_mm256_xor_si256(c2[1552],simde_mm256_xor_si256(c2[1483],simde_mm256_xor_si256(c2[2362],simde_mm256_xor_si256(c2[443],simde_mm256_xor_si256(c2[1569],simde_mm256_xor_si256(c2[1489],simde_mm256_xor_si256(c2[1890],simde_mm256_xor_si256(c2[530],simde_mm256_xor_si256(c2[1416],simde_mm256_xor_si256(c2[937],simde_mm256_xor_si256(c2[1746],simde_mm256_xor_si256(c2[467],simde_mm256_xor_si256(c2[624],simde_mm256_xor_si256(c2[314],simde_mm256_xor_si256(c2[234],simde_mm256_xor_si256(c2[1435],c2[1755])))))))))))))))))))))))))))))))))); d2[164]=simde_mm256_xor_si256(c2[2483],simde_mm256_xor_si256(c2[2403],simde_mm256_xor_si256(c2[2240],simde_mm256_xor_si256(c2[482],simde_mm256_xor_si256(c2[891],simde_mm256_xor_si256(c2[811],simde_mm256_xor_si256(c2[571],simde_mm256_xor_si256(c2[2331],simde_mm256_xor_si256(c2[88],simde_mm256_xor_si256(c2[178],simde_mm256_xor_si256(c2[98],simde_mm256_xor_si256(c2[1217],simde_mm256_xor_si256(c2[1304],simde_mm256_xor_si256(c2[1224],simde_mm256_xor_si256(c2[2184],simde_mm256_xor_si256(c2[105],simde_mm256_xor_si256(c2[1475],simde_mm256_xor_si256(c2[753],simde_mm256_xor_si256(c2[1552],simde_mm256_xor_si256(c2[1483],simde_mm256_xor_si256(c2[2362],simde_mm256_xor_si256(c2[443],simde_mm256_xor_si256(c2[1569],simde_mm256_xor_si256(c2[1489],simde_mm256_xor_si256(c2[1890],simde_mm256_xor_si256(c2[530],simde_mm256_xor_si256(c2[1416],simde_mm256_xor_si256(c2[937],simde_mm256_xor_si256(c2[1746],simde_mm256_xor_si256(c2[467],simde_mm256_xor_si256(c2[624],simde_mm256_xor_si256(c2[314],simde_mm256_xor_si256(c2[234],simde_mm256_xor_si256(c2[1435],c2[1755]))))))))))))))))))))))))))))))))));
} }
} }
#endif
This diff is collapsed.
#ifdef __AVX2__
#include "PHY/sse_intrin.h" #include "PHY/sse_intrin.h"
// generated code for Zc=160, byte encoding // generated code for Zc=160, byte encoding
static inline void ldpc_BG2_Zc160_byte(uint8_t *c,uint8_t *d) { static inline void ldpc_BG2_Zc160_byte(uint8_t *c,uint8_t *d) {
...@@ -137,3 +138,4 @@ static inline void ldpc_BG2_Zc160_byte(uint8_t *c,uint8_t *d) { ...@@ -137,3 +138,4 @@ static inline void ldpc_BG2_Zc160_byte(uint8_t *c,uint8_t *d) {
d2[205]=simde_mm256_xor_si256(c2[2301],simde_mm256_xor_si256(c2[2201],simde_mm256_xor_si256(c2[3100],simde_mm256_xor_si256(c2[1002],simde_mm256_xor_si256(c2[2311],simde_mm256_xor_si256(c2[2211],simde_mm256_xor_si256(c2[2014],simde_mm256_xor_si256(c2[2812],simde_mm256_xor_si256(c2[10],simde_mm256_xor_si256(c2[2321],simde_mm256_xor_si256(c2[2221],simde_mm256_xor_si256(c2[522],simde_mm256_xor_si256(c2[2331],simde_mm256_xor_si256(c2[2231],simde_mm256_xor_si256(c2[1830],simde_mm256_xor_si256(c2[2534],simde_mm256_xor_si256(c2[2241],simde_mm256_xor_si256(c2[3141],simde_mm256_xor_si256(c2[2844],simde_mm256_xor_si256(c2[2251],simde_mm256_xor_si256(c2[851],simde_mm256_xor_si256(c2[250],simde_mm256_xor_si256(c2[2361],simde_mm256_xor_si256(c2[2261],simde_mm256_xor_si256(c2[1464],simde_mm256_xor_si256(c2[262],simde_mm256_xor_si256(c2[2271],simde_mm256_xor_si256(c2[1573],simde_mm256_xor_si256(c2[2281],simde_mm256_xor_si256(c2[280],simde_mm256_xor_si256(c2[1183],simde_mm256_xor_si256(c2[2391],simde_mm256_xor_si256(c2[2291],simde_mm256_xor_si256(c2[1393],c2[493])))))))))))))))))))))))))))))))))); d2[205]=simde_mm256_xor_si256(c2[2301],simde_mm256_xor_si256(c2[2201],simde_mm256_xor_si256(c2[3100],simde_mm256_xor_si256(c2[1002],simde_mm256_xor_si256(c2[2311],simde_mm256_xor_si256(c2[2211],simde_mm256_xor_si256(c2[2014],simde_mm256_xor_si256(c2[2812],simde_mm256_xor_si256(c2[10],simde_mm256_xor_si256(c2[2321],simde_mm256_xor_si256(c2[2221],simde_mm256_xor_si256(c2[522],simde_mm256_xor_si256(c2[2331],simde_mm256_xor_si256(c2[2231],simde_mm256_xor_si256(c2[1830],simde_mm256_xor_si256(c2[2534],simde_mm256_xor_si256(c2[2241],simde_mm256_xor_si256(c2[3141],simde_mm256_xor_si256(c2[2844],simde_mm256_xor_si256(c2[2251],simde_mm256_xor_si256(c2[851],simde_mm256_xor_si256(c2[250],simde_mm256_xor_si256(c2[2361],simde_mm256_xor_si256(c2[2261],simde_mm256_xor_si256(c2[1464],simde_mm256_xor_si256(c2[262],simde_mm256_xor_si256(c2[2271],simde_mm256_xor_si256(c2[1573],simde_mm256_xor_si256(c2[2281],simde_mm256_xor_si256(c2[280],simde_mm256_xor_si256(c2[1183],simde_mm256_xor_si256(c2[2391],simde_mm256_xor_si256(c2[2291],simde_mm256_xor_si256(c2[1393],c2[493]))))))))))))))))))))))))))))))))));
} }
} }
#endif
This diff is collapsed.
#ifdef __AVX2__
#include "PHY/sse_intrin.h" #include "PHY/sse_intrin.h"
// generated code for Zc=192, byte encoding // generated code for Zc=192, byte encoding
static inline void ldpc_BG2_Zc192_byte(uint8_t *c,uint8_t *d) { static inline void ldpc_BG2_Zc192_byte(uint8_t *c,uint8_t *d) {
...@@ -137,3 +138,4 @@ static inline void ldpc_BG2_Zc192_byte(uint8_t *c,uint8_t *d) { ...@@ -137,3 +138,4 @@ static inline void ldpc_BG2_Zc192_byte(uint8_t *c,uint8_t *d) {
d2[246]=simde_mm256_xor_si256(c2[1201],simde_mm256_xor_si256(c2[1081],simde_mm256_xor_si256(c2[2642],simde_mm256_xor_si256(c2[2402],simde_mm256_xor_si256(c2[3496],simde_mm256_xor_si256(c2[3376],simde_mm256_xor_si256(c2[1577],simde_mm256_xor_si256(c2[372],simde_mm256_xor_si256(c2[2296],simde_mm256_xor_si256(c2[265],simde_mm256_xor_si256(c2[145],simde_mm256_xor_si256(c2[1225],simde_mm256_xor_si256(c2[3639],simde_mm256_xor_si256(c2[3519],simde_mm256_xor_si256(c2[3758],simde_mm256_xor_si256(c2[1961],simde_mm256_xor_si256(c2[1371],simde_mm256_xor_si256(c2[1133],simde_mm256_xor_si256(c2[1493],simde_mm256_xor_si256(c2[2824],simde_mm256_xor_si256(c2[424],simde_mm256_xor_si256(c2[900],simde_mm256_xor_si256(c2[436],simde_mm256_xor_si256(c2[316],simde_mm256_xor_si256(c2[3194],simde_mm256_xor_si256(c2[2717],simde_mm256_xor_si256(c2[2725],simde_mm256_xor_si256(c2[2129],simde_mm256_xor_si256(c2[2497],simde_mm256_xor_si256(c2[1661],simde_mm256_xor_si256(c2[2858],simde_mm256_xor_si256(c2[1069],simde_mm256_xor_si256(c2[949],simde_mm256_xor_si256(c2[3709],c2[2629])))))))))))))))))))))))))))))))))); d2[246]=simde_mm256_xor_si256(c2[1201],simde_mm256_xor_si256(c2[1081],simde_mm256_xor_si256(c2[2642],simde_mm256_xor_si256(c2[2402],simde_mm256_xor_si256(c2[3496],simde_mm256_xor_si256(c2[3376],simde_mm256_xor_si256(c2[1577],simde_mm256_xor_si256(c2[372],simde_mm256_xor_si256(c2[2296],simde_mm256_xor_si256(c2[265],simde_mm256_xor_si256(c2[145],simde_mm256_xor_si256(c2[1225],simde_mm256_xor_si256(c2[3639],simde_mm256_xor_si256(c2[3519],simde_mm256_xor_si256(c2[3758],simde_mm256_xor_si256(c2[1961],simde_mm256_xor_si256(c2[1371],simde_mm256_xor_si256(c2[1133],simde_mm256_xor_si256(c2[1493],simde_mm256_xor_si256(c2[2824],simde_mm256_xor_si256(c2[424],simde_mm256_xor_si256(c2[900],simde_mm256_xor_si256(c2[436],simde_mm256_xor_si256(c2[316],simde_mm256_xor_si256(c2[3194],simde_mm256_xor_si256(c2[2717],simde_mm256_xor_si256(c2[2725],simde_mm256_xor_si256(c2[2129],simde_mm256_xor_si256(c2[2497],simde_mm256_xor_si256(c2[1661],simde_mm256_xor_si256(c2[2858],simde_mm256_xor_si256(c2[1069],simde_mm256_xor_si256(c2[949],simde_mm256_xor_si256(c2[3709],c2[2629]))))))))))))))))))))))))))))))))));
} }
} }
#endif
This diff is collapsed.
#ifdef __AVX2__
#include "PHY/sse_intrin.h" #include "PHY/sse_intrin.h"
// generated code for Zc=224, byte encoding // generated code for Zc=224, byte encoding
static inline void ldpc_BG2_Zc224_byte(uint8_t *c,uint8_t *d) { static inline void ldpc_BG2_Zc224_byte(uint8_t *c,uint8_t *d) {
...@@ -137,3 +138,4 @@ static inline void ldpc_BG2_Zc224_byte(uint8_t *c,uint8_t *d) { ...@@ -137,3 +138,4 @@ static inline void ldpc_BG2_Zc224_byte(uint8_t *c,uint8_t *d) {
d2[287]=simde_mm256_xor_si256(c2[3504],simde_mm256_xor_si256(c2[3644],simde_mm256_xor_si256(c2[984],simde_mm256_xor_si256(c2[1400],simde_mm256_xor_si256(c2[4359],simde_mm256_xor_si256(c2[20],simde_mm256_xor_si256(c2[2960],simde_mm256_xor_si256(c2[1555],simde_mm256_xor_si256(c2[3377],simde_mm256_xor_si256(c2[1151],simde_mm256_xor_si256(c2[1291],simde_mm256_xor_si256(c2[3390],simde_mm256_xor_si256(c2[883],simde_mm256_xor_si256(c2[1023],simde_mm256_xor_si256(c2[2002],simde_mm256_xor_si256(c2[46],simde_mm256_xor_si256(c2[762],simde_mm256_xor_si256(c2[2437],simde_mm256_xor_si256(c2[3139],simde_mm256_xor_si256(c2[2030],simde_mm256_xor_si256(c2[2036],simde_mm256_xor_si256(c2[773],simde_mm256_xor_si256(c2[2329],simde_mm256_xor_si256(c2[2469],simde_mm256_xor_si256(c2[790],simde_mm256_xor_si256(c2[2050],simde_mm256_xor_si256(c2[3739],simde_mm256_xor_si256(c2[104],simde_mm256_xor_si256(c2[2215],simde_mm256_xor_si256(c2[1937],simde_mm256_xor_si256(c2[2072],simde_mm256_xor_si256(c2[3628],simde_mm256_xor_si256(c2[3768],simde_mm256_xor_si256(c2[2509],c2[3352])))))))))))))))))))))))))))))))))); d2[287]=simde_mm256_xor_si256(c2[3504],simde_mm256_xor_si256(c2[3644],simde_mm256_xor_si256(c2[984],simde_mm256_xor_si256(c2[1400],simde_mm256_xor_si256(c2[4359],simde_mm256_xor_si256(c2[20],simde_mm256_xor_si256(c2[2960],simde_mm256_xor_si256(c2[1555],simde_mm256_xor_si256(c2[3377],simde_mm256_xor_si256(c2[1151],simde_mm256_xor_si256(c2[1291],simde_mm256_xor_si256(c2[3390],simde_mm256_xor_si256(c2[883],simde_mm256_xor_si256(c2[1023],simde_mm256_xor_si256(c2[2002],simde_mm256_xor_si256(c2[46],simde_mm256_xor_si256(c2[762],simde_mm256_xor_si256(c2[2437],simde_mm256_xor_si256(c2[3139],simde_mm256_xor_si256(c2[2030],simde_mm256_xor_si256(c2[2036],simde_mm256_xor_si256(c2[773],simde_mm256_xor_si256(c2[2329],simde_mm256_xor_si256(c2[2469],simde_mm256_xor_si256(c2[790],simde_mm256_xor_si256(c2[2050],simde_mm256_xor_si256(c2[3739],simde_mm256_xor_si256(c2[104],simde_mm256_xor_si256(c2[2215],simde_mm256_xor_si256(c2[1937],simde_mm256_xor_si256(c2[2072],simde_mm256_xor_si256(c2[3628],simde_mm256_xor_si256(c2[3768],simde_mm256_xor_si256(c2[2509],c2[3352]))))))))))))))))))))))))))))))))));
} }
} }
#endif
This diff is collapsed.
#ifdef __AVX2__
#include "PHY/sse_intrin.h" #include "PHY/sse_intrin.h"
// generated code for Zc=256, byte encoding // generated code for Zc=256, byte encoding
static inline void ldpc_BG2_Zc256_byte(uint8_t *c,uint8_t *d) { static inline void ldpc_BG2_Zc256_byte(uint8_t *c,uint8_t *d) {
...@@ -137,3 +138,4 @@ static inline void ldpc_BG2_Zc256_byte(uint8_t *c,uint8_t *d) { ...@@ -137,3 +138,4 @@ static inline void ldpc_BG2_Zc256_byte(uint8_t *c,uint8_t *d) {
d2[328]=simde_mm256_xor_si256(c2[4963],simde_mm256_xor_si256(c2[4803],simde_mm256_xor_si256(c2[4480],simde_mm256_xor_si256(c2[966],simde_mm256_xor_si256(c2[1783],simde_mm256_xor_si256(c2[1623],simde_mm256_xor_si256(c2[1143],simde_mm256_xor_si256(c2[4659],simde_mm256_xor_si256(c2[180],simde_mm256_xor_si256(c2[354],simde_mm256_xor_si256(c2[194],simde_mm256_xor_si256(c2[2437],simde_mm256_xor_si256(c2[2612],simde_mm256_xor_si256(c2[2452],simde_mm256_xor_si256(c2[4368],simde_mm256_xor_si256(c2[213],simde_mm256_xor_si256(c2[2947],simde_mm256_xor_si256(c2[1509],simde_mm256_xor_si256(c2[3104],simde_mm256_xor_si256(c2[2967],simde_mm256_xor_si256(c2[4726],simde_mm256_xor_si256(c2[887],simde_mm256_xor_si256(c2[3137],simde_mm256_xor_si256(c2[2977],simde_mm256_xor_si256(c2[3778],simde_mm256_xor_si256(c2[1058],simde_mm256_xor_si256(c2[2832],simde_mm256_xor_si256(c2[1877],simde_mm256_xor_si256(c2[3490],simde_mm256_xor_si256(c2[931],simde_mm256_xor_si256(c2[1252],simde_mm256_xor_si256(c2[626],simde_mm256_xor_si256(c2[466],simde_mm256_xor_si256(c2[2867],c2[3511])))))))))))))))))))))))))))))))))); d2[328]=simde_mm256_xor_si256(c2[4963],simde_mm256_xor_si256(c2[4803],simde_mm256_xor_si256(c2[4480],simde_mm256_xor_si256(c2[966],simde_mm256_xor_si256(c2[1783],simde_mm256_xor_si256(c2[1623],simde_mm256_xor_si256(c2[1143],simde_mm256_xor_si256(c2[4659],simde_mm256_xor_si256(c2[180],simde_mm256_xor_si256(c2[354],simde_mm256_xor_si256(c2[194],simde_mm256_xor_si256(c2[2437],simde_mm256_xor_si256(c2[2612],simde_mm256_xor_si256(c2[2452],simde_mm256_xor_si256(c2[4368],simde_mm256_xor_si256(c2[213],simde_mm256_xor_si256(c2[2947],simde_mm256_xor_si256(c2[1509],simde_mm256_xor_si256(c2[3104],simde_mm256_xor_si256(c2[2967],simde_mm256_xor_si256(c2[4726],simde_mm256_xor_si256(c2[887],simde_mm256_xor_si256(c2[3137],simde_mm256_xor_si256(c2[2977],simde_mm256_xor_si256(c2[3778],simde_mm256_xor_si256(c2[1058],simde_mm256_xor_si256(c2[2832],simde_mm256_xor_si256(c2[1877],simde_mm256_xor_si256(c2[3490],simde_mm256_xor_si256(c2[931],simde_mm256_xor_si256(c2[1252],simde_mm256_xor_si256(c2[626],simde_mm256_xor_si256(c2[466],simde_mm256_xor_si256(c2[2867],c2[3511]))))))))))))))))))))))))))))))))));
} }
} }
#endif
This diff is collapsed.
#ifdef __AVX2__
#include "PHY/sse_intrin.h" #include "PHY/sse_intrin.h"
// generated code for Zc=288, byte encoding // generated code for Zc=288, byte encoding
static inline void ldpc_BG2_Zc288_byte(uint8_t *c,uint8_t *d) { static inline void ldpc_BG2_Zc288_byte(uint8_t *c,uint8_t *d) {
...@@ -137,3 +138,4 @@ static inline void ldpc_BG2_Zc288_byte(uint8_t *c,uint8_t *d) { ...@@ -137,3 +138,4 @@ static inline void ldpc_BG2_Zc288_byte(uint8_t *c,uint8_t *d) {
d2[369]=simde_mm256_xor_si256(c2[3960],simde_mm256_xor_si256(c2[3780],simde_mm256_xor_si256(c2[901],simde_mm256_xor_si256(c2[3063],simde_mm256_xor_si256(c2[2359],simde_mm256_xor_si256(c2[2179],simde_mm256_xor_si256(c2[5061],simde_mm256_xor_si256(c2[1822],simde_mm256_xor_si256(c2[2899],simde_mm256_xor_si256(c2[1478],simde_mm256_xor_si256(c2[1298],simde_mm256_xor_si256(c2[2020],simde_mm256_xor_si256(c2[4015],simde_mm256_xor_si256(c2[3835],simde_mm256_xor_si256(c2[2937],simde_mm256_xor_si256(c2[2577],simde_mm256_xor_si256(c2[4755],simde_mm256_xor_si256(c2[76],simde_mm256_xor_si256(c2[1513],simde_mm256_xor_si256(c2[3692],simde_mm256_xor_si256(c2[4050],simde_mm256_xor_si256(c2[2791],simde_mm256_xor_si256(c2[1192],simde_mm256_xor_si256(c2[1012],simde_mm256_xor_si256(c2[1191],simde_mm256_xor_si256(c2[4970],simde_mm256_xor_si256(c2[3729],simde_mm256_xor_si256(c2[668],simde_mm256_xor_si256(c2[4286],simde_mm256_xor_si256(c2[328],simde_mm256_xor_si256(c2[3388],simde_mm256_xor_si256(c2[3406],simde_mm256_xor_si256(c2[3226],simde_mm256_xor_si256(c2[884],c2[345])))))))))))))))))))))))))))))))))); d2[369]=simde_mm256_xor_si256(c2[3960],simde_mm256_xor_si256(c2[3780],simde_mm256_xor_si256(c2[901],simde_mm256_xor_si256(c2[3063],simde_mm256_xor_si256(c2[2359],simde_mm256_xor_si256(c2[2179],simde_mm256_xor_si256(c2[5061],simde_mm256_xor_si256(c2[1822],simde_mm256_xor_si256(c2[2899],simde_mm256_xor_si256(c2[1478],simde_mm256_xor_si256(c2[1298],simde_mm256_xor_si256(c2[2020],simde_mm256_xor_si256(c2[4015],simde_mm256_xor_si256(c2[3835],simde_mm256_xor_si256(c2[2937],simde_mm256_xor_si256(c2[2577],simde_mm256_xor_si256(c2[4755],simde_mm256_xor_si256(c2[76],simde_mm256_xor_si256(c2[1513],simde_mm256_xor_si256(c2[3692],simde_mm256_xor_si256(c2[4050],simde_mm256_xor_si256(c2[2791],simde_mm256_xor_si256(c2[1192],simde_mm256_xor_si256(c2[1012],simde_mm256_xor_si256(c2[1191],simde_mm256_xor_si256(c2[4970],simde_mm256_xor_si256(c2[3729],simde_mm256_xor_si256(c2[668],simde_mm256_xor_si256(c2[4286],simde_mm256_xor_si256(c2[328],simde_mm256_xor_si256(c2[3388],simde_mm256_xor_si256(c2[3406],simde_mm256_xor_si256(c2[3226],simde_mm256_xor_si256(c2[884],c2[345]))))))))))))))))))))))))))))))))));
} }
} }
#endif
This diff is collapsed.
#ifdef __AVX2__
#include "PHY/sse_intrin.h" #include "PHY/sse_intrin.h"
// generated code for Zc=320, byte encoding // generated code for Zc=320, byte encoding
static inline void ldpc_BG2_Zc320_byte(uint8_t *c,uint8_t *d) { static inline void ldpc_BG2_Zc320_byte(uint8_t *c,uint8_t *d) {
...@@ -137,3 +138,4 @@ static inline void ldpc_BG2_Zc320_byte(uint8_t *c,uint8_t *d) { ...@@ -137,3 +138,4 @@ static inline void ldpc_BG2_Zc320_byte(uint8_t *c,uint8_t *d) {
d2[410]=simde_mm256_xor_si256(c2[4601],simde_mm256_xor_si256(c2[4401],simde_mm256_xor_si256(c2[6205],simde_mm256_xor_si256(c2[2002],simde_mm256_xor_si256(c2[4621],simde_mm256_xor_si256(c2[4421],simde_mm256_xor_si256(c2[4024],simde_mm256_xor_si256(c2[5622],simde_mm256_xor_si256(c2[20],simde_mm256_xor_si256(c2[4641],simde_mm256_xor_si256(c2[4441],simde_mm256_xor_si256(c2[1042],simde_mm256_xor_si256(c2[4661],simde_mm256_xor_si256(c2[4461],simde_mm256_xor_si256(c2[3665],simde_mm256_xor_si256(c2[5064],simde_mm256_xor_si256(c2[4481],simde_mm256_xor_si256(c2[6281],simde_mm256_xor_si256(c2[5684],simde_mm256_xor_si256(c2[4501],simde_mm256_xor_si256(c2[1706],simde_mm256_xor_si256(c2[500],simde_mm256_xor_si256(c2[4721],simde_mm256_xor_si256(c2[4521],simde_mm256_xor_si256(c2[2924],simde_mm256_xor_si256(c2[522],simde_mm256_xor_si256(c2[4541],simde_mm256_xor_si256(c2[3143],simde_mm256_xor_si256(c2[4561],simde_mm256_xor_si256(c2[565],simde_mm256_xor_si256(c2[2363],simde_mm256_xor_si256(c2[4781],simde_mm256_xor_si256(c2[4581],simde_mm256_xor_si256(c2[2783],c2[983])))))))))))))))))))))))))))))))))); d2[410]=simde_mm256_xor_si256(c2[4601],simde_mm256_xor_si256(c2[4401],simde_mm256_xor_si256(c2[6205],simde_mm256_xor_si256(c2[2002],simde_mm256_xor_si256(c2[4621],simde_mm256_xor_si256(c2[4421],simde_mm256_xor_si256(c2[4024],simde_mm256_xor_si256(c2[5622],simde_mm256_xor_si256(c2[20],simde_mm256_xor_si256(c2[4641],simde_mm256_xor_si256(c2[4441],simde_mm256_xor_si256(c2[1042],simde_mm256_xor_si256(c2[4661],simde_mm256_xor_si256(c2[4461],simde_mm256_xor_si256(c2[3665],simde_mm256_xor_si256(c2[5064],simde_mm256_xor_si256(c2[4481],simde_mm256_xor_si256(c2[6281],simde_mm256_xor_si256(c2[5684],simde_mm256_xor_si256(c2[4501],simde_mm256_xor_si256(c2[1706],simde_mm256_xor_si256(c2[500],simde_mm256_xor_si256(c2[4721],simde_mm256_xor_si256(c2[4521],simde_mm256_xor_si256(c2[2924],simde_mm256_xor_si256(c2[522],simde_mm256_xor_si256(c2[4541],simde_mm256_xor_si256(c2[3143],simde_mm256_xor_si256(c2[4561],simde_mm256_xor_si256(c2[565],simde_mm256_xor_si256(c2[2363],simde_mm256_xor_si256(c2[4781],simde_mm256_xor_si256(c2[4581],simde_mm256_xor_si256(c2[2783],c2[983]))))))))))))))))))))))))))))))))));
} }
} }
#endif
This diff is collapsed.
#ifdef __AVX2__
#include "PHY/sse_intrin.h" #include "PHY/sse_intrin.h"
// generated code for Zc=32, byte encoding // generated code for Zc=32, byte encoding
static inline void ldpc_BG2_Zc32_byte(uint8_t *c,uint8_t *d) { static inline void ldpc_BG2_Zc32_byte(uint8_t *c,uint8_t *d) {
...@@ -137,3 +138,4 @@ static inline void ldpc_BG2_Zc32_byte(uint8_t *c,uint8_t *d) { ...@@ -137,3 +138,4 @@ static inline void ldpc_BG2_Zc32_byte(uint8_t *c,uint8_t *d) {
d2[41]=simde_mm256_xor_si256(c2[372],simde_mm256_xor_si256(c2[360],simde_mm256_xor_si256(c2[336],simde_mm256_xor_si256(c2[72],simde_mm256_xor_si256(c2[134],simde_mm256_xor_si256(c2[122],simde_mm256_xor_si256(c2[86],simde_mm256_xor_si256(c2[350],simde_mm256_xor_si256(c2[14],simde_mm256_xor_si256(c2[28],simde_mm256_xor_si256(c2[16],simde_mm256_xor_si256(c2[184],simde_mm256_xor_si256(c2[198],simde_mm256_xor_si256(c2[186],simde_mm256_xor_si256(c2[330],simde_mm256_xor_si256(c2[18],simde_mm256_xor_si256(c2[224],simde_mm256_xor_si256(c2[116],simde_mm256_xor_si256(c2[236],simde_mm256_xor_si256(c2[226],simde_mm256_xor_si256(c2[358],simde_mm256_xor_si256(c2[70],simde_mm256_xor_si256(c2[240],simde_mm256_xor_si256(c2[228],simde_mm256_xor_si256(c2[288],simde_mm256_xor_si256(c2[84],simde_mm256_xor_si256(c2[218],simde_mm256_xor_si256(c2[146],simde_mm256_xor_si256(c2[268],simde_mm256_xor_si256(c2[76],simde_mm256_xor_si256(c2[100],simde_mm256_xor_si256(c2[54],simde_mm256_xor_si256(c2[42],simde_mm256_xor_si256(c2[222],c2[270])))))))))))))))))))))))))))))))))); d2[41]=simde_mm256_xor_si256(c2[372],simde_mm256_xor_si256(c2[360],simde_mm256_xor_si256(c2[336],simde_mm256_xor_si256(c2[72],simde_mm256_xor_si256(c2[134],simde_mm256_xor_si256(c2[122],simde_mm256_xor_si256(c2[86],simde_mm256_xor_si256(c2[350],simde_mm256_xor_si256(c2[14],simde_mm256_xor_si256(c2[28],simde_mm256_xor_si256(c2[16],simde_mm256_xor_si256(c2[184],simde_mm256_xor_si256(c2[198],simde_mm256_xor_si256(c2[186],simde_mm256_xor_si256(c2[330],simde_mm256_xor_si256(c2[18],simde_mm256_xor_si256(c2[224],simde_mm256_xor_si256(c2[116],simde_mm256_xor_si256(c2[236],simde_mm256_xor_si256(c2[226],simde_mm256_xor_si256(c2[358],simde_mm256_xor_si256(c2[70],simde_mm256_xor_si256(c2[240],simde_mm256_xor_si256(c2[228],simde_mm256_xor_si256(c2[288],simde_mm256_xor_si256(c2[84],simde_mm256_xor_si256(c2[218],simde_mm256_xor_si256(c2[146],simde_mm256_xor_si256(c2[268],simde_mm256_xor_si256(c2[76],simde_mm256_xor_si256(c2[100],simde_mm256_xor_si256(c2[54],simde_mm256_xor_si256(c2[42],simde_mm256_xor_si256(c2[222],c2[270]))))))))))))))))))))))))))))))))));
} }
} }
#endif
This diff is collapsed.
#ifdef __AVX2__
#include "PHY/sse_intrin.h" #include "PHY/sse_intrin.h"
// generated code for Zc=352, byte encoding // generated code for Zc=352, byte encoding
static inline void ldpc_BG2_Zc352_byte(uint8_t *c,uint8_t *d) { static inline void ldpc_BG2_Zc352_byte(uint8_t *c,uint8_t *d) {
...@@ -137,3 +138,4 @@ static inline void ldpc_BG2_Zc352_byte(uint8_t *c,uint8_t *d) { ...@@ -137,3 +138,4 @@ static inline void ldpc_BG2_Zc352_byte(uint8_t *c,uint8_t *d) {
d2[451]=simde_mm256_xor_si256(c2[885],simde_mm256_xor_si256(c2[665],simde_mm256_xor_si256(c2[5280],simde_mm256_xor_si256(c2[1983],simde_mm256_xor_si256(c2[5086],simde_mm256_xor_si256(c2[4866],simde_mm256_xor_si256(c2[3327],simde_mm256_xor_si256(c2[6183],simde_mm256_xor_si256(c2[906],simde_mm256_xor_si256(c2[4884],simde_mm256_xor_si256(c2[4664],simde_mm256_xor_si256(c2[4669],simde_mm256_xor_si256(c2[2486],simde_mm256_xor_si256(c2[2266],simde_mm256_xor_si256(c2[1828],simde_mm256_xor_si256(c2[4029],simde_mm256_xor_si256(c2[1410],simde_mm256_xor_si256(c2[5590],simde_mm256_xor_si256(c2[4713],simde_mm256_xor_si256(c2[1870],simde_mm256_xor_si256(c2[1434],simde_mm256_xor_si256(c2[1430],simde_mm256_xor_si256(c2[3653],simde_mm256_xor_si256(c2[3433],simde_mm256_xor_si256(c2[6733],simde_mm256_xor_si256(c2[5412],simde_mm256_xor_si256(c2[2795],simde_mm256_xor_si256(c2[157],simde_mm256_xor_si256(c2[4141],simde_mm256_xor_si256(c2[4800],simde_mm256_xor_si256(c2[5456],simde_mm256_xor_si256(c2[862],simde_mm256_xor_si256(c2[642],simde_mm256_xor_si256(c2[2842],c2[3721])))))))))))))))))))))))))))))))))); d2[451]=simde_mm256_xor_si256(c2[885],simde_mm256_xor_si256(c2[665],simde_mm256_xor_si256(c2[5280],simde_mm256_xor_si256(c2[1983],simde_mm256_xor_si256(c2[5086],simde_mm256_xor_si256(c2[4866],simde_mm256_xor_si256(c2[3327],simde_mm256_xor_si256(c2[6183],simde_mm256_xor_si256(c2[906],simde_mm256_xor_si256(c2[4884],simde_mm256_xor_si256(c2[4664],simde_mm256_xor_si256(c2[4669],simde_mm256_xor_si256(c2[2486],simde_mm256_xor_si256(c2[2266],simde_mm256_xor_si256(c2[1828],simde_mm256_xor_si256(c2[4029],simde_mm256_xor_si256(c2[1410],simde_mm256_xor_si256(c2[5590],simde_mm256_xor_si256(c2[4713],simde_mm256_xor_si256(c2[1870],simde_mm256_xor_si256(c2[1434],simde_mm256_xor_si256(c2[1430],simde_mm256_xor_si256(c2[3653],simde_mm256_xor_si256(c2[3433],simde_mm256_xor_si256(c2[6733],simde_mm256_xor_si256(c2[5412],simde_mm256_xor_si256(c2[2795],simde_mm256_xor_si256(c2[157],simde_mm256_xor_si256(c2[4141],simde_mm256_xor_si256(c2[4800],simde_mm256_xor_si256(c2[5456],simde_mm256_xor_si256(c2[862],simde_mm256_xor_si256(c2[642],simde_mm256_xor_si256(c2[2842],c2[3721]))))))))))))))))))))))))))))))))));
} }
} }
#endif
This diff is collapsed.
#ifdef __AVX2__
#include "PHY/sse_intrin.h" #include "PHY/sse_intrin.h"
// generated code for Zc=384, byte encoding // generated code for Zc=384, byte encoding
static inline void ldpc_BG2_Zc384_byte(uint8_t *c,uint8_t *d) { static inline void ldpc_BG2_Zc384_byte(uint8_t *c,uint8_t *d) {
...@@ -137,3 +138,4 @@ static inline void ldpc_BG2_Zc384_byte(uint8_t *c,uint8_t *d) { ...@@ -137,3 +138,4 @@ static inline void ldpc_BG2_Zc384_byte(uint8_t *c,uint8_t *d) {
d2[492]=simde_mm256_xor_si256(c2[2407],simde_mm256_xor_si256(c2[2167],simde_mm256_xor_si256(c2[5282],simde_mm256_xor_si256(c2[4802],simde_mm256_xor_si256(c2[6988],simde_mm256_xor_si256(c2[6748],simde_mm256_xor_si256(c2[3149],simde_mm256_xor_si256(c2[750],simde_mm256_xor_si256(c2[4588],simde_mm256_xor_si256(c2[535],simde_mm256_xor_si256(c2[295],simde_mm256_xor_si256(c2[2455],simde_mm256_xor_si256(c2[7275],simde_mm256_xor_si256(c2[7035],simde_mm256_xor_si256(c2[7514],simde_mm256_xor_si256(c2[3917],simde_mm256_xor_si256(c2[2739],simde_mm256_xor_si256(c2[2261],simde_mm256_xor_si256(c2[2981],simde_mm256_xor_si256(c2[5644],simde_mm256_xor_si256(c2[844],simde_mm256_xor_si256(c2[1800],simde_mm256_xor_si256(c2[868],simde_mm256_xor_si256(c2[628],simde_mm256_xor_si256(c2[6386],simde_mm256_xor_si256(c2[5429],simde_mm256_xor_si256(c2[5455],simde_mm256_xor_si256(c2[4253],simde_mm256_xor_si256(c2[4999],simde_mm256_xor_si256(c2[3317],simde_mm256_xor_si256(c2[5714],simde_mm256_xor_si256(c2[2143],simde_mm256_xor_si256(c2[1903],simde_mm256_xor_si256(c2[7417],c2[5263])))))))))))))))))))))))))))))))))); d2[492]=simde_mm256_xor_si256(c2[2407],simde_mm256_xor_si256(c2[2167],simde_mm256_xor_si256(c2[5282],simde_mm256_xor_si256(c2[4802],simde_mm256_xor_si256(c2[6988],simde_mm256_xor_si256(c2[6748],simde_mm256_xor_si256(c2[3149],simde_mm256_xor_si256(c2[750],simde_mm256_xor_si256(c2[4588],simde_mm256_xor_si256(c2[535],simde_mm256_xor_si256(c2[295],simde_mm256_xor_si256(c2[2455],simde_mm256_xor_si256(c2[7275],simde_mm256_xor_si256(c2[7035],simde_mm256_xor_si256(c2[7514],simde_mm256_xor_si256(c2[3917],simde_mm256_xor_si256(c2[2739],simde_mm256_xor_si256(c2[2261],simde_mm256_xor_si256(c2[2981],simde_mm256_xor_si256(c2[5644],simde_mm256_xor_si256(c2[844],simde_mm256_xor_si256(c2[1800],simde_mm256_xor_si256(c2[868],simde_mm256_xor_si256(c2[628],simde_mm256_xor_si256(c2[6386],simde_mm256_xor_si256(c2[5429],simde_mm256_xor_si256(c2[5455],simde_mm256_xor_si256(c2[4253],simde_mm256_xor_si256(c2[4999],simde_mm256_xor_si256(c2[3317],simde_mm256_xor_si256(c2[5714],simde_mm256_xor_si256(c2[2143],simde_mm256_xor_si256(c2[1903],simde_mm256_xor_si256(c2[7417],c2[5263]))))))))))))))))))))))))))))))))));
} }
} }
#endif
This diff is collapsed.
#ifdef __AVX2__
#include "PHY/sse_intrin.h" #include "PHY/sse_intrin.h"
// generated code for Zc=64, byte encoding // generated code for Zc=64, byte encoding
static inline void ldpc_BG2_Zc64_byte(uint8_t *c,uint8_t *d) { static inline void ldpc_BG2_Zc64_byte(uint8_t *c,uint8_t *d) {
...@@ -137,3 +138,4 @@ static inline void ldpc_BG2_Zc64_byte(uint8_t *c,uint8_t *d) { ...@@ -137,3 +138,4 @@ static inline void ldpc_BG2_Zc64_byte(uint8_t *c,uint8_t *d) {
d2[82]=simde_mm256_xor_si256(c2[993],simde_mm256_xor_si256(c2[961],simde_mm256_xor_si256(c2[896],simde_mm256_xor_si256(c2[192],simde_mm256_xor_si256(c2[357],simde_mm256_xor_si256(c2[325],simde_mm256_xor_si256(c2[229],simde_mm256_xor_si256(c2[933],simde_mm256_xor_si256(c2[36],simde_mm256_xor_si256(c2[72],simde_mm256_xor_si256(c2[40],simde_mm256_xor_si256(c2[489],simde_mm256_xor_si256(c2[524],simde_mm256_xor_si256(c2[492],simde_mm256_xor_si256(c2[876],simde_mm256_xor_si256(c2[45],simde_mm256_xor_si256(c2[593],simde_mm256_xor_si256(c2[305],simde_mm256_xor_si256(c2[624],simde_mm256_xor_si256(c2[597],simde_mm256_xor_si256(c2[948],simde_mm256_xor_si256(c2[181],simde_mm256_xor_si256(c2[633],simde_mm256_xor_si256(c2[601],simde_mm256_xor_si256(c2[760],simde_mm256_xor_si256(c2[216],simde_mm256_xor_si256(c2[572],simde_mm256_xor_si256(c2[381],simde_mm256_xor_si256(c2[704],simde_mm256_xor_si256(c2[193],simde_mm256_xor_si256(c2[256],simde_mm256_xor_si256(c2[132],simde_mm256_xor_si256(c2[100],simde_mm256_xor_si256(c2[581],c2[709])))))))))))))))))))))))))))))))))); d2[82]=simde_mm256_xor_si256(c2[993],simde_mm256_xor_si256(c2[961],simde_mm256_xor_si256(c2[896],simde_mm256_xor_si256(c2[192],simde_mm256_xor_si256(c2[357],simde_mm256_xor_si256(c2[325],simde_mm256_xor_si256(c2[229],simde_mm256_xor_si256(c2[933],simde_mm256_xor_si256(c2[36],simde_mm256_xor_si256(c2[72],simde_mm256_xor_si256(c2[40],simde_mm256_xor_si256(c2[489],simde_mm256_xor_si256(c2[524],simde_mm256_xor_si256(c2[492],simde_mm256_xor_si256(c2[876],simde_mm256_xor_si256(c2[45],simde_mm256_xor_si256(c2[593],simde_mm256_xor_si256(c2[305],simde_mm256_xor_si256(c2[624],simde_mm256_xor_si256(c2[597],simde_mm256_xor_si256(c2[948],simde_mm256_xor_si256(c2[181],simde_mm256_xor_si256(c2[633],simde_mm256_xor_si256(c2[601],simde_mm256_xor_si256(c2[760],simde_mm256_xor_si256(c2[216],simde_mm256_xor_si256(c2[572],simde_mm256_xor_si256(c2[381],simde_mm256_xor_si256(c2[704],simde_mm256_xor_si256(c2[193],simde_mm256_xor_si256(c2[256],simde_mm256_xor_si256(c2[132],simde_mm256_xor_si256(c2[100],simde_mm256_xor_si256(c2[581],c2[709]))))))))))))))))))))))))))))))))));
} }
} }
#endif
This diff is collapsed.
#ifdef __AVX2__
#include "PHY/sse_intrin.h" #include "PHY/sse_intrin.h"
// generated code for Zc=96, byte encoding // generated code for Zc=96, byte encoding
static inline void ldpc_BG2_Zc96_byte(uint8_t *c,uint8_t *d) { static inline void ldpc_BG2_Zc96_byte(uint8_t *c,uint8_t *d) {
...@@ -137,3 +138,4 @@ static inline void ldpc_BG2_Zc96_byte(uint8_t *c,uint8_t *d) { ...@@ -137,3 +138,4 @@ static inline void ldpc_BG2_Zc96_byte(uint8_t *c,uint8_t *d) {
d2[123]=simde_mm256_xor_si256(c2[601],simde_mm256_xor_si256(c2[541],simde_mm256_xor_si256(c2[1322],simde_mm256_xor_si256(c2[1202],simde_mm256_xor_si256(c2[1747],simde_mm256_xor_si256(c2[1687],simde_mm256_xor_si256(c2[788],simde_mm256_xor_si256(c2[186],simde_mm256_xor_si256(c2[1147],simde_mm256_xor_si256(c2[133],simde_mm256_xor_si256(c2[73],simde_mm256_xor_si256(c2[613],simde_mm256_xor_si256(c2[1818],simde_mm256_xor_si256(c2[1758],simde_mm256_xor_si256(c2[1880],simde_mm256_xor_si256(c2[980],simde_mm256_xor_si256(c2[684],simde_mm256_xor_si256(c2[566],simde_mm256_xor_si256(c2[746],simde_mm256_xor_si256(c2[1411],simde_mm256_xor_si256(c2[211],simde_mm256_xor_si256(c2[450],simde_mm256_xor_si256(c2[217],simde_mm256_xor_si256(c2[157],simde_mm256_xor_si256(c2[1598],simde_mm256_xor_si256(c2[1358],simde_mm256_xor_si256(c2[1363],simde_mm256_xor_si256(c2[1064],simde_mm256_xor_si256(c2[1249],simde_mm256_xor_si256(c2[830],simde_mm256_xor_si256(c2[1430],simde_mm256_xor_si256(c2[535],simde_mm256_xor_si256(c2[475],simde_mm256_xor_si256(c2[1855],c2[1315])))))))))))))))))))))))))))))))))); d2[123]=simde_mm256_xor_si256(c2[601],simde_mm256_xor_si256(c2[541],simde_mm256_xor_si256(c2[1322],simde_mm256_xor_si256(c2[1202],simde_mm256_xor_si256(c2[1747],simde_mm256_xor_si256(c2[1687],simde_mm256_xor_si256(c2[788],simde_mm256_xor_si256(c2[186],simde_mm256_xor_si256(c2[1147],simde_mm256_xor_si256(c2[133],simde_mm256_xor_si256(c2[73],simde_mm256_xor_si256(c2[613],simde_mm256_xor_si256(c2[1818],simde_mm256_xor_si256(c2[1758],simde_mm256_xor_si256(c2[1880],simde_mm256_xor_si256(c2[980],simde_mm256_xor_si256(c2[684],simde_mm256_xor_si256(c2[566],simde_mm256_xor_si256(c2[746],simde_mm256_xor_si256(c2[1411],simde_mm256_xor_si256(c2[211],simde_mm256_xor_si256(c2[450],simde_mm256_xor_si256(c2[217],simde_mm256_xor_si256(c2[157],simde_mm256_xor_si256(c2[1598],simde_mm256_xor_si256(c2[1358],simde_mm256_xor_si256(c2[1363],simde_mm256_xor_si256(c2[1064],simde_mm256_xor_si256(c2[1249],simde_mm256_xor_si256(c2[830],simde_mm256_xor_si256(c2[1430],simde_mm256_xor_si256(c2[535],simde_mm256_xor_si256(c2[475],simde_mm256_xor_si256(c2[1855],c2[1315]))))))))))))))))))))))))))))))))));
} }
} }
#endif
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment