mirror of https://github.com/PentHertz/srsLTE.git
Merge branch 'next' into novolk
This commit is contained in:
commit
4104fe18b8
|
@ -1,6 +1,3 @@
|
||||||
if (NOT CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|^i[3,9]86$")
|
|
||||||
return()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
include(CheckCSourceRuns)
|
include(CheckCSourceRuns)
|
||||||
|
|
||||||
|
@ -40,11 +37,21 @@ 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;
|
||||||
return 0;
|
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;
|
||||||
}"
|
}"
|
||||||
HAVE_AVX)
|
HAVE_AVX)
|
||||||
endif()
|
endif()
|
||||||
|
@ -54,29 +61,38 @@ if (ENABLE_SSE)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (ENABLE_AVX2)
|
if (ENABLE_AVX2)
|
||||||
|
|
||||||
#
|
#
|
||||||
# Check compiler for AVX intrinsics
|
# Check compiler for AVX intrinsics
|
||||||
#
|
#
|
||||||
if (CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_CLANG )
|
if (CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_CLANG )
|
||||||
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, b, c;
|
||||||
__m256i a = _mm256_setzero_si256();
|
const int src[8] = { 1, 2, 3, 4, 5, 6, 7, 8 };
|
||||||
__m256i b = _mm256_abs_epi16(a);
|
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)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (HAVE_AVX2)
|
if (HAVE_AVX2)
|
||||||
message(STATUS "AVX2 is enabled - target CPU must support it")
|
message(STATUS "AVX2 is enabled - target CPU must support it")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -439,15 +439,21 @@ 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--;
|
||||||
}
|
}
|
||||||
return get_fd(<e_bands[i], earfcn);
|
return get_fd(<e_bands[i], 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--;
|
||||||
|
|
Loading…
Reference in New Issue