test(hal): properly dispatch FP16 test
authorAlexander Alekhin <alexander.a.alekhin@gmail.com>
Thu, 24 Aug 2017 20:52:29 +0000 (20:52 +0000)
committerAlexander Alekhin <alexander.a.alekhin@gmail.com>
Thu, 24 Aug 2017 20:54:17 +0000 (20:54 +0000)
modules/core/test/test_intrin.cpp
modules/core/test/test_intrin.fp16.cpp
modules/core/test/test_intrin_utils.hpp

index e055edd..09cf196 100644 (file)
@@ -1,10 +1,17 @@
 #include "test_precomp.hpp"
-#include "test_intrin_utils.hpp"
 #include <climits>
 
+#include "test_intrin_utils.hpp"
+
+#define CV_CPU_SIMD_FILENAME "test_intrin_utils.hpp"
+#define CV_CPU_DISPATCH_MODE FP16
+#include "opencv2/core/private/cv_cpu_include_simd_declarations.hpp"
+
+
 using namespace cv;
 
 namespace cvtest { namespace hal {
+using namespace CV_CPU_OPTIMIZATION_NAMESPACE;
 
 //=============  8-bit integer =====================================================================
 
@@ -220,4 +227,10 @@ TEST(hal_intrin, float64x2) {
 }
 #endif
 
+TEST(hal_intrin,float16x4)
+{
+    CV_CPU_CALL_FP16(test_hal_intrin_float16x4, ());
+    throw SkipTestException("Unsupported hardware: FP16 is not available");
+}
+
 }}
index 4f27764..5e7e49a 100644 (file)
@@ -2,10 +2,15 @@
 #include "test_intrin_utils.hpp"
 
 namespace cvtest { namespace hal {
-TEST(hal_intrin, float16x4) {
+CV_CPU_OPTIMIZATION_NAMESPACE_BEGIN
+
+void test_hal_intrin_float16x4()
+{
     TheTest<v_float16x4>()
         .test_loadstore_fp16()
         .test_float_cvt_fp16()
         ;
 }
-}}
+
+CV_CPU_OPTIMIZATION_NAMESPACE_END
+}} // namespace
index 817dad7..c4e74fa 100644 (file)
@@ -1,11 +1,11 @@
-#ifndef _TEST_UTILS_HPP_
-#define _TEST_UTILS_HPP_
-
 #include "opencv2/core/hal/intrin.hpp"
-#include "opencv2/ts.hpp"
-#include <ostream>
-#include <algorithm>
-#include <climits>
+
+namespace cvtest { namespace hal {
+CV_CPU_OPTIMIZATION_NAMESPACE_BEGIN
+
+void test_hal_intrin_float16x4();
+
+#ifndef CV_CPU_OPTIMIZATION_DECLARATIONS_ONLY
 
 template <typename R> struct Data;
 template <int N> struct initializer;
@@ -156,8 +156,6 @@ template <typename R> std::ostream & operator<<(std::ostream & out, const Data<R
     return out;
 }
 
-namespace cvtest { namespace hal {
-
 template<typename T> static inline void EXPECT_COMPARE_EQ_(const T a, const T b);
 template<> inline void EXPECT_COMPARE_EQ_<float>(const float a, const float b)
 {
@@ -962,7 +960,8 @@ template<typename R> struct TheTest
     }
 
 };
-  }
-}
 
 #endif
+
+CV_CPU_OPTIMIZATION_NAMESPACE_END
+}} // namespace