mirror of
https://github.com/google/cpu_features.git
synced 2025-08-17 03:34:35 +02:00
Fix SSE detection on non-AVX CPUs (#135)
Fixes #4. This is based on #115 with a few modifications: - Removed use of __builtin_cpu_supports since it relies on cpuid and doesn't improve on the current situation, - Added detection for all of sse, sse2, sse3, ssse3, sse4_1 and sse4_2, - Added tests for Atom, Nehalem, and P3 processors, Thx to @gadoofou87 for providing the original PR. It also removes the need for #92 * Fix SSE detection on non-AVX CPUs * Fixes typo * Mock OSX sysctlbyname in tests * Also update other tests * FakeCpu is reset between each tests * Fix conflicting name on Windows * Disable pre AVX cpu sse detection tests on Windows * Guard OS specific code with macros * Fix missing import for tests * Fix wrong function prototype * Fix wrong mocking of P3 on Windows * Completely guard OS specific parts in x86 tests * Store DWORD instead unsigned long for x86 tests
This commit is contained in:

committed by
GitHub

parent
22a5362e11
commit
4795373db2
@@ -91,6 +91,11 @@ macro(add_cpu_features_headers_and_sources HDRS_LIST_NAME SRCS_LIST_NAME)
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
if(UNIX AND PROCESSOR_IS_X86)
|
||||
check_include_file(sys/utsname.h HAVE_UTSNAME_H)
|
||||
endif()
|
||||
|
||||
|
||||
#
|
||||
# library : utils
|
||||
#
|
||||
@@ -148,6 +153,14 @@ set_property(TARGET cpu_features PROPERTY POSITION_INDEPENDENT_CODE ${BUILD_PIC}
|
||||
target_include_directories(cpu_features
|
||||
PUBLIC $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/cpu_features>
|
||||
)
|
||||
if(PROCESSOR_IS_X86)
|
||||
if(HAVE_UTSNAME_H)
|
||||
target_compile_definitions(cpu_features PRIVATE HAVE_UTSNAME_H)
|
||||
endif()
|
||||
if(APPLE)
|
||||
target_compile_definitions(cpu_features PRIVATE HAVE_SYSCTLBYNAME)
|
||||
endif()
|
||||
endif()
|
||||
add_library(CpuFeature::cpu_features ALIAS cpu_features)
|
||||
|
||||
#
|
||||
|
Reference in New Issue
Block a user