Merge pull request #111 from HecaiYuan/master

loongarch: add loongarch simd opt
This commit is contained in:
mborgerding
2026-05-11 20:03:41 -04:00
committed by GitHub
12 changed files with 192 additions and 7 deletions

View File

@@ -165,7 +165,13 @@ else()
if(KISSFFT_DATATYPE MATCHES "^simd$")
list(APPEND KISSFFT_COMPILE_DEFINITIONS USE_SIMD)
if (NOT MSVC)
if(HAVE_LASX)
list(APPEND KISSFFT_COMPILE_DEFINITIONS HAVE_LASX)
target_compile_options(kissfft PRIVATE -mlasx)
elseif(HAVE_LSX)
list(APPEND KISSFFT_COMPILE_DEFINITIONS HAVE_LSX)
target_compile_options(kissfft PRIVATE -mlsx)
elseif(NOT MSVC)
target_compile_options(kissfft PRIVATE -msse)
else()
target_compile_options(kissfft PRIVATE "/arch:SSE")
@@ -260,6 +266,13 @@ function(add_kissfft_executable NAME)
target_link_libraries(${NAME} PRIVATE m)
endif()
if(HAVE_LASX)
target_compile_options(${NAME} PRIVATE -mlasx)
endif()
if(HAVE_LSX)
target_compile_options(${NAME} PRIVATE -mlsx)
endif()
if (NOT KISSFFT_OPENMP)
set_target_properties(${NAME} PROPERTIES
OUTPUT_NAME "${NAME}-${KISSFFT_DATATYPE}")
@@ -327,7 +340,11 @@ if (KISSFFT_PKGCONFIG)
join_paths(PKGCONFIG_KISSFFT_INCLUDEDIR "\${prefix}" "${CMAKE_INSTALL_INCLUDEDIR}")
if(KISSFFT_DATATYPE MATCHES "^simd$")
list(APPEND KISSFFT_COMPILE_DEFINITIONS USE_SIMD)
if (NOT MSVC)
if(HAVE_LASX)
set(PKG_KISSFFT_DEFS "${PKG_KISSFFT_DEFS} -mlasx")
elseif(HAVE_LSX)
set(PKG_KISSFFT_DEFS "${PKG_KISSFFT_DEFS} -mlsx")
elseif(NOT MSVC)
set(PKG_KISSFFT_DEFS "${PKG_KISSFFT_DEFS} -msse")
else()
set(PKG_KISSFFT_DEFS "${PKG_KISSFFT_DEFS} /ARCH:SSE")