Changes for 64qam_64qam for avx2
Conflicts: openair1/PHY/LTE_TRANSPORT/dlsch_llr_computation.c
This commit is contained in:
@@ -8831,15 +8831,8 @@ int dlsch_64qam_64qam_llr(LTE_DL_FRAME_PARMS *frame_parms,
|
|||||||
len = (nb_rb*12) - pbch_pss_sss_adjust;
|
len = (nb_rb*12) - pbch_pss_sss_adjust;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
//#ifdef __AVX2__
|
||||||
qam64_qam64((short *)rxF,
|
|
||||||
(short *)rxF_i,
|
|
||||||
(short *)ch_mag,
|
|
||||||
(short *)ch_mag_i,
|
|
||||||
(short *)llr16,
|
|
||||||
(short *)rho,
|
|
||||||
len);
|
|
||||||
#else
|
|
||||||
// Round length up to multiple of 16 words
|
// Round length up to multiple of 16 words
|
||||||
uint32_t len256i = ((len+16)>>4)*16;
|
uint32_t len256i = ((len+16)>>4)*16;
|
||||||
int32_t *rxF_256i = (int32_t*) malloc16_clear(len256i*4);
|
int32_t *rxF_256i = (int32_t*) malloc16_clear(len256i*4);
|
||||||
@@ -8853,7 +8846,7 @@ int dlsch_64qam_64qam_llr(LTE_DL_FRAME_PARMS *frame_parms,
|
|||||||
memcpy(ch_mag_256i, ch_mag, len*4);
|
memcpy(ch_mag_256i, ch_mag, len*4);
|
||||||
memcpy(ch_mag_i_256i, ch_mag_i, len*4);
|
memcpy(ch_mag_i_256i, ch_mag_i, len*4);
|
||||||
memcpy(rho_256i, rho, len*4);
|
memcpy(rho_256i, rho, len*4);
|
||||||
|
/*
|
||||||
qam64_qam64_avx2((int32_t *)rxF_256i,
|
qam64_qam64_avx2((int32_t *)rxF_256i,
|
||||||
(int32_t *)rxF_i_256i,
|
(int32_t *)rxF_i_256i,
|
||||||
(int32_t *)ch_mag_256i,
|
(int32_t *)ch_mag_256i,
|
||||||
@@ -8861,13 +8854,34 @@ int dlsch_64qam_64qam_llr(LTE_DL_FRAME_PARMS *frame_parms,
|
|||||||
(int16_t *)llr16,
|
(int16_t *)llr16,
|
||||||
(int32_t *) rho_256i,
|
(int32_t *) rho_256i,
|
||||||
len);
|
len);
|
||||||
|
*/
|
||||||
|
qam64_qam16_avx2((short *)rxF_256i,
|
||||||
|
(short *)rxF_i_256i,
|
||||||
|
(short *)ch_mag_256i,
|
||||||
|
(short *)ch_mag_i_256i,
|
||||||
|
(short *)llr16,
|
||||||
|
(short *)rho_256i,
|
||||||
|
len);
|
||||||
|
|
||||||
free16(rxF_256i, sizeof(rxF_256i));
|
free16(rxF_256i, sizeof(rxF_256i));
|
||||||
free16(rxF_i_256i, sizeof(rxF_i_256i));
|
free16(rxF_i_256i, sizeof(rxF_i_256i));
|
||||||
free16(ch_mag_256i, sizeof(ch_mag_256i));
|
free16(ch_mag_256i, sizeof(ch_mag_256i));
|
||||||
free16(ch_mag_i_256i, sizeof(ch_mag_i_256i));
|
free16(ch_mag_i_256i, sizeof(ch_mag_i_256i));
|
||||||
free16(rho_256i, sizeof(rho_256i));
|
free16(rho_256i, sizeof(rho_256i));
|
||||||
#endif
|
|
||||||
|
//#else
|
||||||
|
/*
|
||||||
|
qam64_qam64((short *)rxF,
|
||||||
|
(short *)rxF_i,
|
||||||
|
(short *)ch_mag,
|
||||||
|
(short *)ch_mag_i,
|
||||||
|
(short *)llr16,
|
||||||
|
(short *)rho,
|
||||||
|
len);
|
||||||
|
*/
|
||||||
|
|
||||||
|
//#endif
|
||||||
|
|
||||||
llr16 += (6*len);
|
llr16 += (6*len);
|
||||||
*llr16p = (short *)llr16;
|
*llr16p = (short *)llr16;
|
||||||
return(0);
|
return(0);
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -704,6 +704,22 @@ void qam64_qam16(short *stream0_in,
|
|||||||
short *rho01,
|
short *rho01,
|
||||||
int length);
|
int length);
|
||||||
|
|
||||||
|
/** \brief This function computes the LLRs for ML (max-logsum approximation) dual-stream 64QAM/16QAM reception.
|
||||||
|
@param stream0_in Input from channel compensated (MR combined) stream 0
|
||||||
|
@param stream1_in Input from channel compensated (MR combined) stream 1
|
||||||
|
@param ch_mag Input from scaled channel magnitude square of h0'*g0
|
||||||
|
@param ch_mag_i Input from scaled channel magnitude square of h0'*g1
|
||||||
|
@param stream0_out Output from LLR unit for stream0
|
||||||
|
@param rho01 Cross-correlation between channels (MR combined)
|
||||||
|
@param length in complex channel outputs*/
|
||||||
|
void qam64_qam16_avx2(short *stream0_in,
|
||||||
|
short *stream1_in,
|
||||||
|
short *ch_mag,
|
||||||
|
short *ch_mag_i,
|
||||||
|
short *stream0_out,
|
||||||
|
short *rho01,
|
||||||
|
int length);
|
||||||
|
|
||||||
/** \brief This function perform LLR computation for dual-stream (64QAM/16QAM) transmission.
|
/** \brief This function perform LLR computation for dual-stream (64QAM/16QAM) transmission.
|
||||||
@param frame_parms Frame descriptor structure
|
@param frame_parms Frame descriptor structure
|
||||||
@param rxdataF_comp Compensated channel output
|
@param rxdataF_comp Compensated channel output
|
||||||
|
|||||||
Reference in New Issue
Block a user