core:ppc64 fix the build with the newer versions of Eigen on IBM/Power
authorSayed Adel <seiko@imavr.com>
Mon, 8 Mar 2021 19:13:12 +0000 (19:13 +0000)
committerSayed Adel <seiko@imavr.com>
Tue, 9 Mar 2021 17:20:18 +0000 (19:20 +0200)
   It also fixes the build when universal intrinsics is disabled
   via `-DDCV_ENABLE_INTRINSICS=OFF`.

modules/core/include/opencv2/core/fast_math.hpp
modules/core/include/opencv2/core/vsx_utils.hpp

index 0f53cf5c1b909f14b085a22961b80894a86e8e7b..eb4fbe213bb463ed5bfbfaf1721f674cbf3d76af 100644 (file)
@@ -76,6 +76,9 @@
   #if defined __PPC64__ && defined __GNUC__ && defined _ARCH_PWR8 \
       && !defined(OPENCV_SKIP_INCLUDE_ALTIVEC_H)
     #include <altivec.h>
+    #undef vector
+    #undef bool
+    #undef pixel
   #endif
 
   #if defined(CV_INLINE_ROUND_FLT)
index d7962517df6f2cf4c594ebb47e4632dd0383c2f3..68863ffb36f288afc1dac60ff39a2f424675af50 100644 (file)
@@ -497,11 +497,13 @@ VSX_IMPL_CONV_EVEN_2_4(vec_uint4,  vec_double2, vec_ctu, vec_ctuo)
     VSX_FINLINE(rt) fnm(const rg& a, int only_truncate) \
     {                                                   \
         assert(only_truncate == 0);                     \
-        CV_UNUSED(only_truncate);                            \
+        CV_UNUSED(only_truncate);                       \
         return fn2(a);                                  \
     }
     VSX_IMPL_CONV_2VARIANT(vec_int4,   vec_float4,  vec_cts, vec_cts)
+    VSX_IMPL_CONV_2VARIANT(vec_uint4,  vec_float4,  vec_ctu, vec_ctu)
     VSX_IMPL_CONV_2VARIANT(vec_float4, vec_int4,    vec_ctf, vec_ctf)
+    VSX_IMPL_CONV_2VARIANT(vec_float4, vec_uint4,   vec_ctf, vec_ctf)
     // define vec_cts for converting double precision to signed doubleword
     // which isn't compatible with xlc but its okay since Eigen only uses it for gcc
     VSX_IMPL_CONV_2VARIANT(vec_dword2, vec_double2, vec_cts, vec_ctsl)