Commit ea7df917 authored by Raymond Knopp's avatar Raymond Knopp

updated in dlsch_channel_compensation_TM3: inlining precoder and energy...

updated in dlsch_channel_compensation_TM3: inlining precoder and energy computation out of PRB loop (very bad performance bug)

git-svn-id: http://svn.eurecom.fr/openair4G/trunk@7203 818b1a75-f10b-46b9-bf7c-635c3b92a50f
parent 36f79658
......@@ -1350,7 +1350,8 @@ short TM3_prec[8]__attribute__((aligned(16))) = {1,1,-1,-1,1,1,-1,-1} ;
#if defined(__x86_64__) || defined(__i386__)
void prec2A_TM3_128(__m128i *ch0,__m128i *ch1)
static inline void prec2A_TM3_128(__m128i *ch0,__m128i *ch1) __attribute__((always_inline));
static inline void prec2A_TM3_128(__m128i *ch0,__m128i *ch1)
{
// __m128i amp = _mm_set1_epi16(ONE_OVER_SQRT2_Q15);
......@@ -1379,8 +1380,6 @@ void prec2A_TM3_128(__m128i *ch0,__m128i *ch1)
// print_shorts("prec2A_TM3 ch0 (after):",ch0);
// print_shorts("prec2A_TM3 ch1 (after):",ch1);
_mm_empty();
_m_empty();
}
#elif defined(__arm__)
......@@ -2155,12 +2154,13 @@ void dlsch_channel_compensation_TM3(LTE_DL_FRAME_PARMS *frame_parms,
Nre = (pilots==0) ? 12 : 8;
} // rb loop
precoded_signal_strength0 += ((signal_energy_nodc(&dl_ch_estimates_ext[aarx][symbol*frame_parms->N_RB_DL*Nre],
(nb_rb*Nre))*rx_power_correction) - (phy_measurements->n0_power[aarx]));
precoded_signal_strength1 += ((signal_energy_nodc(&dl_ch_estimates_ext[aarx+2][symbol*frame_parms->N_RB_DL*Nre],
(nb_rb*Nre))*rx_power_correction) - (phy_measurements->n0_power[aarx]));
} // rb loop
} // rx_antennas
phy_measurements->precoded_cqi_dB[eNB_id][0] = dB_fixed2(precoded_signal_strength0,phy_measurements->n0_power_tot);
......
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