|
5 | 5 | # AVX / AVX2 / AVX_512F |
6 | 6 | # FMA3 |
7 | 7 |
|
| 8 | +# ppc64le arch: |
| 9 | +# VSX (always available on Power8) |
| 10 | +# VSX3 (always available on Power9) |
| 11 | + |
8 | 12 | # CPU_{opt}_SUPPORTED=ON/OFF - compiler support (possibly with additional flag) |
9 | 13 | # CPU_{opt}_IMPLIES=<list> |
10 | 14 | # CPU_{opt}_FORCE=<list> - subset of "implies" list |
|
29 | 33 |
|
30 | 34 | set(CPU_ALL_OPTIMIZATIONS "SSE;SSE2;SSE3;SSSE3;SSE4_1;SSE4_2;POPCNT;AVX;FP16;AVX2;FMA3;AVX_512F;AVX512_SKX") |
31 | 35 | list(APPEND CPU_ALL_OPTIMIZATIONS NEON VFPV3 FP16) |
32 | | -list(APPEND CPU_ALL_OPTIMIZATIONS VSX) |
| 36 | +list(APPEND CPU_ALL_OPTIMIZATIONS VSX VSX3) |
33 | 37 | list(REMOVE_DUPLICATES CPU_ALL_OPTIMIZATIONS) |
34 | 38 |
|
35 | 39 | ocv_update(CPU_VFPV3_FEATURE_ALIAS "") |
@@ -81,7 +85,7 @@ ocv_optimization_process_obsolete_option(ENABLE_FMA3 FMA3 ON) |
81 | 85 | ocv_optimization_process_obsolete_option(ENABLE_VFPV3 VFPV3 OFF) |
82 | 86 | ocv_optimization_process_obsolete_option(ENABLE_NEON NEON OFF) |
83 | 87 |
|
84 | | -ocv_optimization_process_obsolete_option(ENABLE_VSX VSX OFF) |
| 88 | +ocv_optimization_process_obsolete_option(ENABLE_VSX VSX ON) |
85 | 89 |
|
86 | 90 | macro(ocv_is_optimization_in_list resultvar check_opt) |
87 | 91 | set(__checked "") |
@@ -289,14 +293,24 @@ elseif(ARM OR AARCH64) |
289 | 293 | set(CPU_BASELINE "NEON;FP16" CACHE STRING "${HELP_CPU_BASELINE}") |
290 | 294 | endif() |
291 | 295 | elseif(PPC64LE) |
292 | | - ocv_update(CPU_KNOWN_OPTIMIZATIONS "VSX") |
| 296 | + ocv_update(CPU_KNOWN_OPTIMIZATIONS "VSX;VSX3") |
293 | 297 | ocv_update(CPU_VSX_TEST_FILE "${OpenCV_SOURCE_DIR}/cmake/checks/cpu_vsx.cpp") |
| 298 | + ocv_update(CPU_VSX3_TEST_FILE "${OpenCV_SOURCE_DIR}/cmake/checks/cpu_vsx3.cpp") |
| 299 | + |
| 300 | + if(NOT OPENCV_CPU_OPT_IMPLIES_IGNORE) |
| 301 | + ocv_update(CPU_VSX3_IMPLIES "VSX") |
| 302 | + endif() |
294 | 303 |
|
295 | 304 | if(CV_CLANG AND (NOT ${CMAKE_CXX_COMPILER} MATCHES "xlc")) |
296 | 305 | ocv_update(CPU_VSX_FLAGS_ON "-mvsx -maltivec") |
| 306 | + ocv_update(CPU_VSX3_FLAGS_ON "-mpower9-vector") |
297 | 307 | else() |
298 | 308 | ocv_update(CPU_VSX_FLAGS_ON "-mcpu=power8") |
| 309 | + ocv_update(CPU_VSX3_FLAGS_ON "-mcpu=power9 -mtune=power9") |
299 | 310 | endif() |
| 311 | + |
| 312 | + set(CPU_DISPATCH "VSX3" CACHE STRING "${HELP_CPU_DISPATCH}") |
| 313 | + set(CPU_BASELINE "VSX" CACHE STRING "${HELP_CPU_BASELINE}") |
300 | 314 | endif() |
301 | 315 |
|
302 | 316 | # Helper values for cmake-gui |
|
0 commit comments