File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -75,13 +75,20 @@ PRIVATE
7575)
7676
7777### simd dispatch
78- if (CMAKE_SYSTEM_PROCESSOR MATCHES "arm64|aarch64" )
78+ if (APPLE )
7979 target_sources (${PROJECT_NAME }
8080 PRIVATE
8181 src/dsp/dsp_neon.cpp
82+ src/dsp/dsp_avx2.cpp
83+ src/dsp/dsp_avx.cpp
84+ src/dsp/dsp_sse4.cpp
85+ src/dsp/dsp_sse2.cpp
8286 )
83- set_source_files_properties ("src/dsp/dsp_neon.cpp" PROPERTIES COMPILE_FLAGS "-march=native" )
84- target_compile_definitions (${PROJECT_NAME } PRIVATE DSP_DISPATCH_APPLE )
87+ set_source_files_properties ("src/dsp/dsp_neon.cpp" PROPERTIES COMPILE_FLAGS "-arch arm64" )
88+ set_source_files_properties ("src/dsp/dsp_sse2.cpp" PROPERTIES COMPILE_FLAGS "-arch x86_64 -msse2" )
89+ set_source_files_properties ("src/dsp/dsp_sse4.cpp" PROPERTIES COMPILE_FLAGS "-arch x86_64 -msse4.1" )
90+ set_source_files_properties ("src/dsp/dsp_avx.cpp" PROPERTIES COMPILE_FLAGS "-arch x86_64 -mavx" )
91+ set_source_files_properties ("src/dsp/dsp_avx2.cpp" PROPERTIES COMPILE_FLAGS "-arch x86_64 -mavx2" )
8592else ()
8693 target_sources (${PROJECT_NAME }
8794 PRIVATE
@@ -94,7 +101,6 @@ else()
94101 set_source_files_properties ("src/dsp/dsp_sse4.cpp" PROPERTIES COMPILE_FLAGS "-msse4.1" )
95102 set_source_files_properties ("src/dsp/dsp_avx.cpp" PROPERTIES COMPILE_FLAGS "-mavx" )
96103 set_source_files_properties ("src/dsp/dsp_avx2.cpp" PROPERTIES COMPILE_FLAGS "-mavx2" )
97- target_compile_definitions (${PROJECT_NAME } PRIVATE DSP_DISPATCH_X86 )
98104endif ()
99105
100106# 头文件目录
Original file line number Diff line number Diff line change @@ -6,14 +6,14 @@ namespace warpcore {
66ProcessorDsp GetProcessorDsp () noexcept {
77 using IS = simd_detector::InstructionSet;
88
9- #ifdef DSP_DISPATCH_APPLE
9+ #if defined(__aarch64__) || defined(_M_ARM64)
1010 if (simd_detector::is_supported (IS ::NEON )) {
1111 extern ProcessorDsp dsp_neon;
1212 return dsp_neon;
1313 }
1414#endif
1515
16- #ifdef DSP_DISPATCH_X86
16+ #if defined(__x86_64__) || defined(_M_X64)
1717 if (simd_detector::is_supported (IS ::AVX2 )) {
1818 extern ProcessorDsp dsp_avx2;
1919 return dsp_avx2;
You can’t perform that action at this time.
0 commit comments