2
2
# SSE / SSE2 (always available on 64-bit CPUs)
3
3
# SSE3 / SSSE3
4
4
# SSE4_1 / SSE4_2 / POPCNT
5
- # AVX / AVX2 / AVX512
5
+ # AVX / AVX2 / AVX_512F
6
6
# FMA3
7
7
8
8
# CPU_{opt}_SUPPORTED=ON/OFF - compiler support (possibly with additional flag)
26
26
#
27
27
# CPU_DISPATCH_FLAGS_${opt} - flags for source files compiled separately (<name>.avx2.cpp)
28
28
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 " )
30
30
list (APPEND CPU_ALL_OPTIMIZATIONS NEON VFPV3 FP16 )
31
31
list (APPEND CPU_ALL_OPTIMIZATIONS VSX )
32
32
list (REMOVE_DUPLICATES CPU_ALL_OPTIMIZATIONS )
@@ -145,7 +145,7 @@ elseif(" ${CMAKE_CXX_FLAGS} " MATCHES " -march=native | -xHost | /QxHost ")
145
145
endif ()
146
146
147
147
if (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 " )
149
149
150
150
ocv_update (CPU_SSE_TEST_FILE "${OpenCV_SOURCE_DIR} /cmake/checks/cpu_sse.cpp" )
151
151
ocv_update (CPU_SSE2_TEST_FILE "${OpenCV_SOURCE_DIR} /cmake/checks/cpu_sse2.cpp" )
@@ -157,11 +157,11 @@ if(X86 OR X86_64)
157
157
ocv_update (CPU_AVX_TEST_FILE "${OpenCV_SOURCE_DIR} /cmake/checks/cpu_avx.cpp" )
158
158
ocv_update (CPU_AVX2_TEST_FILE "${OpenCV_SOURCE_DIR} /cmake/checks/cpu_avx2.cpp" )
159
159
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" )
161
161
162
162
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
165
165
ocv_update (CPU_AVX2_IMPLIES "AVX;FMA3;FP16" )
166
166
ocv_update (CPU_FMA3_IMPLIES "AVX2" )
167
167
ocv_update (CPU_FMA3_FORCE "" ) # Don't force other optimizations
@@ -205,7 +205,7 @@ if(X86 OR X86_64)
205
205
if (NOT X86_64 ) # x64 compiler doesn't support /arch:sse
206
206
ocv_intel_compiler_optimization_option (SSE "-msse" "/arch:SSE" )
207
207
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 " )
209
209
elseif (CMAKE_COMPILER_IS_GNUCXX )
210
210
ocv_update (CPU_AVX2_FLAGS_ON "-mavx2" )
211
211
ocv_update (CPU_FP16_FLAGS_ON "-mf16c" )
@@ -219,7 +219,8 @@ if(X86 OR X86_64)
219
219
ocv_update (CPU_SSE2_FLAGS_ON "-msse2" )
220
220
ocv_update (CPU_SSE_FLAGS_ON "-msse" )
221
221
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" )
223
224
endif ()
224
225
elseif (MSVC )
225
226
ocv_update (CPU_AVX2_FLAGS_ON "/arch:AVX2" )
0 commit comments