22# SSE / SSE2 (always available on 64-bit CPUs)
33# SSE3 / SSSE3
44# SSE4_1 / SSE4_2 / POPCNT
5- # AVX / AVX2 / AVX512
5+ # AVX / AVX2 / AVX_512F
66# FMA3
77
88# CPU_{opt}_SUPPORTED=ON/OFF - compiler support (possibly with additional flag)
2626#
2727# CPU_DISPATCH_FLAGS_${opt} - flags for source files compiled separately (<name>.avx2.cpp)
2828
29- set (CPU_ALL_OPTIMIZATIONS "SSE;SSE2;SSE3;SSSE3;SSE4_1;SSE4_2;POPCNT;AVX;FP16;AVX2;FMA3;AVX512 " )
29+ set (CPU_ALL_OPTIMIZATIONS "SSE;SSE2;SSE3;SSSE3;SSE4_1;SSE4_2;POPCNT;AVX;FP16;AVX2;FMA3;AVX_512F " )
3030list (APPEND CPU_ALL_OPTIMIZATIONS NEON VFPV3 FP16)
3131list (APPEND CPU_ALL_OPTIMIZATIONS VSX)
3232list (REMOVE_DUPLICATES CPU_ALL_OPTIMIZATIONS)
@@ -145,7 +145,7 @@ elseif(" ${CMAKE_CXX_FLAGS} " MATCHES " -march=native | -xHost | /QxHost ")
145145endif ()
146146
147147if (X86 OR X86_64)
148- ocv_update (CPU_KNOWN_OPTIMIZATIONS "SSE;SSE2;SSE3;SSSE3;SSE4_1;POPCNT;SSE4_2;FP16;FMA3;AVX;AVX2;AVX512 " )
148+ ocv_update (CPU_KNOWN_OPTIMIZATIONS "SSE;SSE2;SSE3;SSSE3;SSE4_1;POPCNT;SSE4_2;FP16;FMA3;AVX;AVX2;AVX_512F " )
149149
150150 ocv_update (CPU_SSE_TEST_FILE "${OpenCV_SOURCE_DIR} /cmake/checks/cpu_sse.cpp" )
151151 ocv_update (CPU_SSE2_TEST_FILE "${OpenCV_SOURCE_DIR} /cmake/checks/cpu_sse2.cpp" )
@@ -157,11 +157,11 @@ if(X86 OR X86_64)
157157 ocv_update (CPU_AVX_TEST_FILE "${OpenCV_SOURCE_DIR} /cmake/checks/cpu_avx.cpp" )
158158 ocv_update (CPU_AVX2_TEST_FILE "${OpenCV_SOURCE_DIR} /cmake/checks/cpu_avx2.cpp" )
159159 ocv_update (CPU_FP16_TEST_FILE "${OpenCV_SOURCE_DIR} /cmake/checks/cpu_fp16.cpp" )
160- ocv_update (CPU_AVX512_TEST_FILE "${OpenCV_SOURCE_DIR} /cmake/checks/cpu_avx512.cpp" )
160+ ocv_update (CPU_AVX_512F_TEST_FILE "${OpenCV_SOURCE_DIR} /cmake/checks/cpu_avx512.cpp" )
161161
162162 if (NOT OPENCV_CPU_OPT_IMPLIES_IGNORE)
163- ocv_update (CPU_AVX512_IMPLIES "AVX2" )
164- ocv_update (CPU_AVX512_FORCE "" ) # Don't force other optimizations
163+ ocv_update (CPU_AVX_512F_IMPLIES "AVX2" )
164+ ocv_update (CPU_AVX_512F_FORCE "" ) # Don't force other optimizations
165165 ocv_update (CPU_AVX2_IMPLIES "AVX;FMA3;FP16" )
166166 ocv_update (CPU_FMA3_IMPLIES "AVX2" )
167167 ocv_update (CPU_FMA3_FORCE "" ) # Don't force other optimizations
@@ -205,7 +205,7 @@ if(X86 OR X86_64)
205205 if (NOT X86_64) # x64 compiler doesn't support /arch:sse
206206 ocv_intel_compiler_optimization_option (SSE "-msse" "/arch:SSE" )
207207 endif ()
208- # ocv_intel_compiler_optimization_option(AVX512 "-march=core -avx512")
208+ ocv_intel_compiler_optimization_option (AVX_512F "-march=common -avx512" "/arch:COMMON-AVX512 " )
209209 elseif (CMAKE_COMPILER_IS_GNUCXX)
210210 ocv_update (CPU_AVX2_FLAGS_ON "-mavx2" )
211211 ocv_update (CPU_FP16_FLAGS_ON "-mf16c" )
@@ -219,7 +219,8 @@ if(X86 OR X86_64)
219219 ocv_update (CPU_SSE2_FLAGS_ON "-msse2" )
220220 ocv_update (CPU_SSE_FLAGS_ON "-msse" )
221221 if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS "5.0" )
222- ocv_update (CPU_AVX512_FLAGS_ON "-mavx512f -mavx512pf -mavx512er -mavx512cd -mavx512vl -mavx512bw -mavx512dq -mavx512ifma -mavx512vbmi" )
222+ # -mavx512f -mavx512pf -mavx512er -mavx512cd -mavx512vl -mavx512bw -mavx512dq -mavx512ifma -mavx512vbmi
223+ ocv_update (CPU_AVX_512F_FLAGS_ON "-mavx512f" )
223224 endif ()
224225 elseif (MSVC )
225226 ocv_update (CPU_AVX2_FLAGS_ON "/arch:AVX2" )
0 commit comments