diff --git a/modules/c++/sys/source/OSWin32.cpp b/modules/c++/sys/source/OSWin32.cpp index f8fd74e68..73422e5da 100644 --- a/modules/c++/sys/source/OSWin32.cpp +++ b/modules/c++/sys/source/OSWin32.cpp @@ -357,11 +357,14 @@ void sys::OSWin32::getAvailableCPUs(std::vector& /*physicalCPUs*/, sys::SIMDInstructionSet sys::OSWin32::getSIMDInstructionSet() const { // https://learn.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-isprocessorfeaturepresent -#if _MSC_VER >= 1920 + // (these require Windows SDK (19041) or later) +#ifdef PF_AVX512F_INSTRUCTIONS_AVAILABLE if (IsProcessorFeaturePresent(PF_AVX512F_INSTRUCTIONS_AVAILABLE)) { return SIMDInstructionSet::AVX512F; } +#endif +#ifdef PF_AVX2_INSTRUCTIONS_AVAILABLE if (IsProcessorFeaturePresent(PF_AVX2_INSTRUCTIONS_AVAILABLE)) { return SIMDInstructionSet::AVX2;