Merge branch 'next' into novolk

This commit is contained in:
Ismael Gomez 2017-01-26 00:35:27 +01:00
commit 4104fe18b8
3 changed files with 50 additions and 27 deletions

View File

@ -1,6 +1,3 @@
if (NOT CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|^i[3,9]86$")
return()
endif()
include(CheckCSourceRuns) include(CheckCSourceRuns)
@ -40,10 +37,20 @@ if (ENABLE_SSE)
set(CMAKE_REQUIRED_FLAGS "-mavx") set(CMAKE_REQUIRED_FLAGS "-mavx")
check_c_source_runs(" check_c_source_runs("
#include <immintrin.h> #include <immintrin.h>
int main() int main()
{ {
__m256i a = _mm256_setzero_si256(); __m256 a, b, c;
const float src[8] = { 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f };
float dst[8];
a = _mm256_loadu_ps( src );
b = _mm256_loadu_ps( src );
c = _mm256_add_ps( a, b );
_mm256_storeu_ps( dst, c );
for( int i = 0; i < 8; i++ ){
if( ( src[i] + src[i] ) != dst[i] ){
return -1;
}
}
return 0; return 0;
}" }"
HAVE_AVX) HAVE_AVX)
@ -63,11 +70,20 @@ if (ENABLE_SSE)
set(CMAKE_REQUIRED_FLAGS "-mavx2") set(CMAKE_REQUIRED_FLAGS "-mavx2")
check_c_source_runs(" check_c_source_runs("
#include <immintrin.h> #include <immintrin.h>
int main() int main()
{ {
__m256i a = _mm256_setzero_si256(); __m256i a, b, c;
__m256i b = _mm256_abs_epi16(a); const int src[8] = { 1, 2, 3, 4, 5, 6, 7, 8 };
int dst[8];
a = _mm256_loadu_si256( (__m256i*)src );
b = _mm256_loadu_si256( (__m256i*)src );
c = _mm256_add_epi32( a, b );
_mm256_storeu_si256( (__m256i*)dst, c );
for( int i = 0; i < 8; i++ ){
if( ( src[i] + src[i] ) != dst[i] ){
return -1;
}
}
return 0; return 0;
}" }"
HAVE_AVX2) HAVE_AVX2)

View File

@ -46,6 +46,7 @@ add_custom_target (add_srslte_headers SOURCES ${HEADERS_ALL})
find_package(MKL) find_package(MKL)
if(MKL_FOUND) if(MKL_FOUND)
include_directories(${MKL_INCLUDE_DIRS}) include_directories(${MKL_INCLUDE_DIRS})
include_directories(${MKL_INCLUDE_DIRS}/fftw)
link_directories(${MKL_LIBRARY_DIRS}) link_directories(${MKL_LIBRARY_DIRS})
else(MKL_FOUND) else(MKL_FOUND)
find_package(FFTW3F REQUIRED) find_package(FFTW3F REQUIRED)

View File

@ -439,6 +439,9 @@ int srslte_band_get_band(uint32_t earfcn) {
} }
float srslte_band_fd(uint32_t earfcn) { float srslte_band_fd(uint32_t earfcn) {
if (earfcn > lte_bands[SRSLTE_NOF_LTE_BANDS-1].earfcn_max) {
return -1;
}
uint32_t i = SRSLTE_NOF_LTE_BANDS-1; uint32_t i = SRSLTE_NOF_LTE_BANDS-1;
while(i > 0 && lte_bands[i].earfcn_offset>earfcn) { while(i > 0 && lte_bands[i].earfcn_offset>earfcn) {
i--; i--;
@ -448,6 +451,9 @@ float srslte_band_fd(uint32_t earfcn) {
float srslte_band_fu(uint32_t earfcn) { float srslte_band_fu(uint32_t earfcn) {
if (earfcn > lte_bands[SRSLTE_NOF_LTE_BANDS-1].earfcn_max) {
return -1;
}
uint32_t i = SRSLTE_NOF_LTE_BANDS-1; uint32_t i = SRSLTE_NOF_LTE_BANDS-1;
while(i > 0 && lte_bands[i].earfcn_offset>earfcn) { while(i > 0 && lte_bands[i].earfcn_offset>earfcn) {
i--; i--;