@ -136,7 +136,7 @@
# define SRSLTE_SIMD_S_SIZE 8
# define SRSLTE_SIMD_S_SIZE 8
# define SRSLTE_SIMD_C16_SIZE 8
# define SRSLTE_SIMD_C16_SIZE 8
# else /* LV_ HAVE_NEON */
# else /* HAVE_NEON */
# define SRSLTE_SIMD_F_SIZE 0
# define SRSLTE_SIMD_F_SIZE 0
# define SRSLTE_SIMD_CF_SIZE 0
# define SRSLTE_SIMD_CF_SIZE 0
@ -511,7 +511,7 @@ static inline simd_f_t srslte_simd_f_abs(simd_f_t a) {
return _mm_andnot_ps ( _mm_set1_ps ( - 0.0f ) , a ) ;
return _mm_andnot_ps ( _mm_set1_ps ( - 0.0f ) , a ) ;
# else /* LV_HAVE_SSE */
# else /* LV_HAVE_SSE */
# ifdef HAVE_NEON
# ifdef HAVE_NEON
return v qabsq_s 32( a ) ;
return v absq_f 32( a ) ;
# endif /* HAVE_NEON */
# endif /* HAVE_NEON */
# endif /* LV_HAVE_SSE */
# endif /* LV_HAVE_SSE */
# endif /* LV_HAVE_AVX2 */
# endif /* LV_HAVE_AVX2 */
@ -987,13 +987,13 @@ static inline simd_cf_t srslte_simd_cf_rcp (simd_cf_t a) {
static inline simd_cf_t srslte_simd_cf_neg ( simd_cf_t a ) {
static inline simd_cf_t srslte_simd_cf_neg ( simd_cf_t a ) {
simd_cf_t ret ;
simd_cf_t ret ;
# if LV_ HAVE_NEON
# if HAVE_NEON
ret . val [ 0 ] = srslte_simd_f_neg ( a . val [ 0 ] ) ;
ret . val [ 0 ] = srslte_simd_f_neg ( a . val [ 0 ] ) ;
ret . val [ 1 ] = srslte_simd_f_neg ( a . val [ 1 ] ) ;
ret . val [ 1 ] = srslte_simd_f_neg ( a . val [ 1 ] ) ;
# else /* LV_ HAVE_NEON */
# else /* HAVE_NEON */
ret . re = srslte_simd_f_neg ( a . re ) ;
ret . re = srslte_simd_f_neg ( a . re ) ;
ret . im = srslte_simd_f_neg ( a . im ) ;
ret . im = srslte_simd_f_neg ( a . im ) ;
# endif /* LV_ HAVE_NEON */
# endif /* HAVE_NEON */
return ret ;
return ret ;
}
}
@ -1004,37 +1004,37 @@ static inline simd_cf_t srslte_simd_cf_neg_mask (simd_cf_t a, simd_f_t mask) {
mask = _mm256_permutevar8x32_ps ( mask , _mm256_setr_epi32 ( 0 , 4 , 1 , 5 , 2 , 6 , 3 , 7 ) ) ;
mask = _mm256_permutevar8x32_ps ( mask , _mm256_setr_epi32 ( 0 , 4 , 1 , 5 , 2 , 6 , 3 , 7 ) ) ;
# endif /* LV_HAVE_AVX2 */
# endif /* LV_HAVE_AVX2 */
# endif /* LV_HAVE_AVX512 */
# endif /* LV_HAVE_AVX512 */
# if LV_ HAVE_NEON
# if HAVE_NEON
ret . val [ 0 ] = srslte_simd_f_neg_mask ( a . val [ 0 ] , mask ) ;
ret . val [ 0 ] = srslte_simd_f_neg_mask ( a . val [ 0 ] , mask ) ;
ret . val [ 1 ] = srslte_simd_f_neg_mask ( a . val [ 1 ] , mask ) ;
ret . val [ 1 ] = srslte_simd_f_neg_mask ( a . val [ 1 ] , mask ) ;
# else /* LV_ HAVE_NEON */
# else /* HAVE_NEON */
ret . re = srslte_simd_f_neg_mask ( a . re , mask ) ;
ret . re = srslte_simd_f_neg_mask ( a . re , mask ) ;
ret . im = srslte_simd_f_neg_mask ( a . im , mask ) ;
ret . im = srslte_simd_f_neg_mask ( a . im , mask ) ;
# endif /* LV_ HAVE_NEON */
# endif /* HAVE_NEON */
return ret ;
return ret ;
}
}
static inline simd_cf_t srslte_simd_cf_conj ( simd_cf_t a ) {
static inline simd_cf_t srslte_simd_cf_conj ( simd_cf_t a ) {
simd_cf_t ret ;
simd_cf_t ret ;
# if LV_ HAVE_NEON
# if HAVE_NEON
ret . val [ 0 ] = a . val [ 0 ] ;
ret . val [ 0 ] = a . val [ 0 ] ;
ret . val [ 1 ] = srslte_simd_f_neg ( a . val [ 1 ] ) ;
ret . val [ 1 ] = srslte_simd_f_neg ( a . val [ 1 ] ) ;
# else /* LV_ HAVE_NEON */
# else /* HAVE_NEON */
ret . re = a . re ;
ret . re = a . re ;
ret . im = srslte_simd_f_neg ( a . im ) ;
ret . im = srslte_simd_f_neg ( a . im ) ;
# endif /* LV_ HAVE_NEON */
# endif /* HAVE_NEON */
return ret ;
return ret ;
}
}
static inline simd_cf_t srslte_simd_cf_mulj ( simd_cf_t a ) {
static inline simd_cf_t srslte_simd_cf_mulj ( simd_cf_t a ) {
simd_cf_t ret ;
simd_cf_t ret ;
# if LV_ HAVE_NEON
# if HAVE_NEON
ret . val [ 0 ] = srslte_simd_f_neg ( a . val [ 1 ] ) ;
ret . val [ 0 ] = srslte_simd_f_neg ( a . val [ 1 ] ) ;
ret . val [ 1 ] = a . val [ 0 ] ;
ret . val [ 1 ] = a . val [ 0 ] ;
# else /* LV_ HAVE_NEON */
# else /* HAVE_NEON */
ret . re = srslte_simd_f_neg ( a . im ) ;
ret . re = srslte_simd_f_neg ( a . im ) ;
ret . im = a . re ;
ret . im = a . re ;
# endif /* LV_ HAVE_NEON */
# endif /* HAVE_NEON */
return ret ;
return ret ;
}
}