|
|
|
@@ -368,14 +368,24 @@ elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(powerpc|ppc)") |
|
|
|
if(NCNN_PPC64LE_VSX) |
|
|
|
set(NCNN_TARGET_ARCH x86) |
|
|
|
|
|
|
|
set(CMAKE_REQUIRED_FLAGS "-DNO_WARN_X86_INTRINSICS -D__SSE2__") |
|
|
|
check_cxx_source_compiles("#include <emmintrin.h>\nint main() { return 0; }" NCNN_COMPILER_SUPPORT_PPC64LE_SSE2) |
|
|
|
unset(CMAKE_REQUIRED_FLAGS) |
|
|
|
|
|
|
|
set(CMAKE_REQUIRED_FLAGS "-DNO_WARN_X86_INTRINSICS -D__SSE4_1__") |
|
|
|
check_cxx_source_compiles("#include <smmintrin.h>\nint main() { __m128i _v, _a, _b; _v = _mm_packus_epi32(_a, _b); return 0; }" NCNN_COMPILER_SUPPORT_PPC64LE_SSE41) |
|
|
|
unset(CMAKE_REQUIRED_FLAGS) |
|
|
|
|
|
|
|
if(NCNN_COMPILER_SUPPORT_PPC64LE_SSE2) |
|
|
|
option(NCNN_VSX_SSE2 "optimize ppc64le platform with sse2 extension" ON) |
|
|
|
else() |
|
|
|
message(WARNING "The compiler does not support sse2 extension. NCNN_VSX_SSE2 will be OFF.") |
|
|
|
endif() |
|
|
|
|
|
|
|
if(NCNN_COMPILER_SUPPORT_PPC64LE_SSE41) |
|
|
|
option(NCNN_SSE41 "optimize ppc64le platform with sse4.1 extension" ON) |
|
|
|
option(NCNN_VSX_SSE41 "optimize ppc64le platform with sse4.1 extension" ON) |
|
|
|
else() |
|
|
|
message(WARNING "The compiler does not support sse4.1 extension. NCNN_SSE41 will be OFF.") |
|
|
|
message(WARNING "The compiler does not support sse4.1 extension. NCNN_VSX_SSE41 will be OFF.") |
|
|
|
endif() |
|
|
|
endif() |
|
|
|
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(xtensa)") |
|
|
|
|