Add Intrinsics usage by SIMDE
This commit is contained in:
committed by
Robert Schmidt
parent
a1de5e3d11
commit
fe1dc24e28
@@ -301,7 +301,7 @@ void freq_equalization(LTE_DL_FRAME_PARMS *frame_parms,
|
||||
rxdataF_comp128 = (__m128i *)&rxdataF_comp[0][symbol*frame_parms->N_RB_DL*12];
|
||||
ul_ch_mag128 = (__m128i *)&ul_ch_mag[0][symbol*frame_parms->N_RB_DL*12];
|
||||
ul_ch_magb128 = (__m128i *)&ul_ch_magb[0][symbol*frame_parms->N_RB_DL*12];
|
||||
#elif defined(__arm__)
|
||||
#elif defined(__arm__) || defined(__aarch64__)
|
||||
int16x8_t *ul_ch_mag128,*ul_ch_magb128,*rxdataF_comp128;
|
||||
rxdataF_comp128 = (int16x8_t*)&rxdataF_comp[0][symbol*frame_parms->N_RB_DL*12];
|
||||
ul_ch_mag128 = (int16x8_t*)&ul_ch_mag[0][symbol*frame_parms->N_RB_DL*12];
|
||||
@@ -330,7 +330,7 @@ void freq_equalization(LTE_DL_FRAME_PARMS *frame_parms,
|
||||
ul_ch_mag128[re] = _mm_set1_epi16(316); // this is 512*4/sqrt(42)
|
||||
ul_ch_magb128[re] = _mm_set1_epi16(158); // this is 512*2/sqrt(42)
|
||||
}
|
||||
#elif defined(__arm__)
|
||||
#elif defined(__arm__) || defined(__aarch64__)
|
||||
rxdataF_comp128[re] = vmulq_s16(rxdataF_comp128[re],inv_ch[amp]);
|
||||
|
||||
if (Qm==4)
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
|
||||
#if defined(__x86_64__) || defined(__i386__)
|
||||
__m128i avg128F;
|
||||
#elif defined(__arm__)
|
||||
#elif defined(__arm__) || defined(__aarch64__)
|
||||
int32x4_t avg128F;
|
||||
#endif
|
||||
|
||||
@@ -42,7 +42,7 @@ int dl_channel_level(int16_t *dl_ch,
|
||||
int16_t rb;
|
||||
#if defined(__x86_64__) || defined(__i386__)
|
||||
__m128i *dl_ch128;
|
||||
#elif defined(__arm__)
|
||||
#elif defined(__arm__) || defined(__aarch64__)
|
||||
int16x4_t *dl_ch128;
|
||||
#endif
|
||||
int avg;
|
||||
@@ -61,7 +61,7 @@ int dl_channel_level(int16_t *dl_ch,
|
||||
dl_ch128+=3;
|
||||
|
||||
}
|
||||
#elif defined(__arm__)
|
||||
#elif defined(__arm__) || defined(__aarch64__)
|
||||
avg128F = vdupq_n_s32(0);
|
||||
dl_ch128=(int16x4_t *)dl_ch;
|
||||
|
||||
|
||||
@@ -769,7 +769,7 @@ void dlsch_channel_level_TM34_meas(int *ch00,
|
||||
_mm_empty();
|
||||
_m_empty();
|
||||
|
||||
#elif defined(__arm__)
|
||||
#elif defined(__arm__) || defined(__aarch64__)
|
||||
|
||||
#endif
|
||||
}
|
||||
@@ -1019,7 +1019,7 @@ void lte_ue_measurements(PHY_VARS_UE *ue,
|
||||
unsigned int limit,subband;
|
||||
#if defined(__x86_64__) || defined(__i386__)
|
||||
__m128i *dl_ch0_128,*dl_ch1_128;
|
||||
#elif defined(__arm__)
|
||||
#elif defined(__arm__) || defined(__aarch64__)
|
||||
int16x8_t *dl_ch0_128, *dl_ch1_128;
|
||||
#endif
|
||||
int *dl_ch0,*dl_ch1;
|
||||
@@ -1218,7 +1218,7 @@ void lte_ue_measurements(PHY_VARS_UE *ue,
|
||||
|
||||
dl_ch0_128 = (__m128i *)&ue->common_vars.common_vars_rx_data_per_thread[ue->current_thread_id[subframe]].dl_ch_estimates[eNB_id][aarx][4];
|
||||
dl_ch1_128 = (__m128i *)&ue->common_vars.common_vars_rx_data_per_thread[ue->current_thread_id[subframe]].dl_ch_estimates[eNB_id][2+aarx][4];
|
||||
#elif defined(__arm__)
|
||||
#elif defined(__arm__) || defined(__aarch64__)
|
||||
int32x4_t pmi128_re,pmi128_im,mmtmpPMI0,mmtmpPMI1,mmtmpPMI0b,mmtmpPMI1b;
|
||||
|
||||
dl_ch0_128 = (int16x8_t *)&ue->common_vars.common_vars_rx_data_per_thread[ue->current_thread_id[subframe]].dl_ch_estimates[eNB_id][aarx][4];
|
||||
@@ -1233,7 +1233,7 @@ void lte_ue_measurements(PHY_VARS_UE *ue,
|
||||
|
||||
pmi128_re = _mm_xor_si128(pmi128_re,pmi128_re);
|
||||
pmi128_im = _mm_xor_si128(pmi128_im,pmi128_im);
|
||||
#elif defined(__arm__)
|
||||
#elif defined(__arm__) || defined(__aarch64__)
|
||||
|
||||
pmi128_re = vdupq_n_s32(0);
|
||||
pmi128_im = vdupq_n_s32(0);
|
||||
@@ -1291,7 +1291,7 @@ void lte_ue_measurements(PHY_VARS_UE *ue,
|
||||
pmi128_im = _mm_add_epi32(pmi128_im,mmtmpPMI1);
|
||||
//print_ints(" pmi128_im 1 ",&pmi128_im);*/
|
||||
|
||||
#elif defined(__arm__)
|
||||
#elif defined(__arm__) || defined(__aarch64__)
|
||||
|
||||
mmtmpPMI0 = vmull_s16(((int16x4_t*)dl_ch0_128)[0], ((int16x4_t*)dl_ch1_128)[0]);
|
||||
mmtmpPMI1 = vmull_s16(((int16x4_t*)dl_ch0_128)[1], ((int16x4_t*)dl_ch1_128)[1]);
|
||||
|
||||
@@ -76,7 +76,7 @@ int32_t lte_ul_channel_estimation(LTE_DL_FRAME_PARMS *frame_parms,
|
||||
#if defined(__x86_64__) || defined(__i386__)
|
||||
__m128i *rxdataF128,*ul_ref128,*ul_ch128;
|
||||
__m128i mmtmpU0,mmtmpU1,mmtmpU2,mmtmpU3;
|
||||
#elif defined(__arm__)
|
||||
#elif defined(__arm__) || defined(__aarch64__)
|
||||
int16x8_t *rxdataF128,*ul_ref128,*ul_ch128;
|
||||
int32x4_t mmtmp0,mmtmp1,mmtmp_re,mmtmp_im;
|
||||
#endif
|
||||
@@ -120,7 +120,7 @@ int32_t lte_ul_channel_estimation(LTE_DL_FRAME_PARMS *frame_parms,
|
||||
rxdataF128 = (__m128i *)&rxdataF_ext[aa][symbol_offset];
|
||||
ul_ch128 = (__m128i *)&ul_ch_estimates[aa][symbol_offset];
|
||||
ul_ref128 = (__m128i *)ul_ref_sigs_rx[u][v][Msc_RS_idx];
|
||||
#elif defined(__arm__)
|
||||
#elif defined(__arm__) || defined(__aarch64__)
|
||||
rxdataF128 = (int16x8_t *)&rxdataF_ext[aa][symbol_offset];
|
||||
ul_ch128 = (int16x8_t *)&ul_ch_estimates[aa][symbol_offset];
|
||||
ul_ref128 = (int16x8_t *)ul_ref_sigs_rx[u][v][Msc_RS_idx];
|
||||
@@ -167,7 +167,7 @@ int32_t lte_ul_channel_estimation(LTE_DL_FRAME_PARMS *frame_parms,
|
||||
mmtmpU2 = _mm_unpacklo_epi32(mmtmpU0,mmtmpU1);
|
||||
mmtmpU3 = _mm_unpackhi_epi32(mmtmpU0,mmtmpU1);
|
||||
ul_ch128[2] = _mm_packs_epi32(mmtmpU2,mmtmpU3);
|
||||
#elif defined(__arm__)
|
||||
#elif defined(__arm__) || defined(__aarch64__)
|
||||
mmtmp0 = vmull_s16(((int16x4_t *)ul_ref128)[0],((int16x4_t *)rxdataF128)[0]);
|
||||
mmtmp1 = vmull_s16(((int16x4_t *)ul_ref128)[1],((int16x4_t *)rxdataF128)[1]);
|
||||
mmtmp_re = vcombine_s32(vpadd_s32(vget_low_s32(mmtmp0),vget_high_s32(mmtmp0)),
|
||||
@@ -412,7 +412,7 @@ int32_t lte_ul_channel_estimation_RRU(LTE_DL_FRAME_PARMS *frame_parms,
|
||||
#if defined(__x86_64__) || defined(__i386__)
|
||||
__m128i *rxdataF128,*ul_ref128,*ul_ch128;
|
||||
__m128i mmtmpU0,mmtmpU1,mmtmpU2,mmtmpU3;
|
||||
#elif defined(__arm__)
|
||||
#elif defined(__arm__) || defined(__aarch64__)
|
||||
int16x8_t *rxdataF128,*ul_ref128,*ul_ch128;
|
||||
int32x4_t mmtmp0,mmtmp1,mmtmp_re,mmtmp_im;
|
||||
#endif
|
||||
@@ -448,7 +448,7 @@ int32_t lte_ul_channel_estimation_RRU(LTE_DL_FRAME_PARMS *frame_parms,
|
||||
rxdataF128 = (__m128i *)&rxdataF_ext[aa][symbol_offset];
|
||||
ul_ch128 = (__m128i *)&ul_ch_estimates[aa][symbol_offset];
|
||||
ul_ref128 = (__m128i *)ul_ref_sigs_rx[u][v][Msc_RS_idx];
|
||||
#elif defined(__arm__)
|
||||
#elif defined(__arm__) || defined(__aarch64__)
|
||||
rxdataF128 = (int16x8_t *)&rxdataF_ext[aa][symbol_offset];
|
||||
ul_ch128 = (int16x8_t *)&ul_ch_estimates[aa][symbol_offset];
|
||||
ul_ref128 = (int16x8_t *)ul_ref_sigs_rx[u][v][Msc_RS_idx];
|
||||
@@ -495,7 +495,7 @@ int32_t lte_ul_channel_estimation_RRU(LTE_DL_FRAME_PARMS *frame_parms,
|
||||
mmtmpU2 = _mm_unpacklo_epi32(mmtmpU0,mmtmpU1);
|
||||
mmtmpU3 = _mm_unpackhi_epi32(mmtmpU0,mmtmpU1);
|
||||
ul_ch128[2] = _mm_packs_epi32(mmtmpU2,mmtmpU3);
|
||||
#elif defined(__arm__)
|
||||
#elif defined(__arm__) || defined(__aarch64__)
|
||||
mmtmp0 = vmull_s16(((int16x4_t *)ul_ref128)[0],((int16x4_t *)rxdataF128)[0]);
|
||||
mmtmp1 = vmull_s16(((int16x4_t *)ul_ref128)[1],((int16x4_t *)rxdataF128)[1]);
|
||||
mmtmp_re = vcombine_s32(vpadd_s32(vget_low_s32(mmtmp0),vget_high_s32(mmtmp0)),
|
||||
@@ -906,7 +906,7 @@ int16_t lte_ul_freq_offset_estimation(LTE_DL_FRAME_PARMS *frame_parms,
|
||||
phase_idx = -phase_idx;
|
||||
|
||||
return(phase_idx);
|
||||
#elif defined(__arm__)
|
||||
#elif defined(__arm__) || defined(__aarch64__)
|
||||
return(0);
|
||||
#endif
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user