ocv_update(CPU_FP16_TEST_FILE "${OpenCV_SOURCE_DIR}/cmake/checks/cpu_fp16.cpp")
if(NOT AARCH64)
ocv_update(CPU_KNOWN_OPTIMIZATIONS "VFPV3;NEON;FP16")
- ocv_update(CPU_VFPV3_FLAGS_ON "-mfpu=vfpv3")
- ocv_update(CPU_NEON_FLAGS_ON "-mfpu=neon")
- ocv_update(CPU_NEON_FLAGS_CONFLICT "-mfpu=[^ ]*")
- ocv_update(CPU_FP16_FLAGS_ON "-mfpu=neon-fp16")
+ if(NOT MSVC)
+ ocv_update(CPU_VFPV3_FLAGS_ON "-mfpu=vfpv3")
+ ocv_update(CPU_NEON_FLAGS_ON "-mfpu=neon")
+ ocv_update(CPU_NEON_FLAGS_CONFLICT "-mfpu=[^ ]*")
+ ocv_update(CPU_FP16_FLAGS_ON "-mfpu=neon-fp16")
+ ocv_update(CPU_FP16_FLAGS_CONFLICT "-mfpu=[^ ]*")
+ endif()
ocv_update(CPU_FP16_IMPLIES "NEON")
- ocv_update(CPU_FP16_FLAGS_CONFLICT "-mfpu=[^ ]*")
else()
ocv_update(CPU_KNOWN_OPTIMIZATIONS "NEON;FP16")
ocv_update(CPU_NEON_FLAGS_ON "")
inline unsigned int trailingZeros32(unsigned int value) {
#if defined(_MSC_VER)
-#if (_MSC_VER < 1700)
+#if (_MSC_VER < 1700) || defined(_M_ARM)
unsigned long index = 0;
_BitScanForward(&index, value);
return (unsigned int)index;
//! @cond IGNORED
#define CALL_HAL_RET(name, fun, retval, ...) \
{ \
- int res = fun(__VA_ARGS__, &retval); \
+ int res = __CV_EXPAND(fun(__VA_ARGS__, &retval)); \
if (res == CV_HAL_ERROR_OK) \
return retval; \
else if (res != CV_HAL_ERROR_NOT_IMPLEMENTED) \
#define CALL_HAL(name, fun, ...) \
{ \
- int res = fun(__VA_ARGS__); \
+ int res = __CV_EXPAND(fun(__VA_ARGS__)); \
if (res == CV_HAL_ERROR_OK) \
return; \
else if (res != CV_HAL_ERROR_NOT_IMPLEMENTED) \
//! @cond IGNORED
#define CALL_HAL_RET(name, fun, retval, ...) \
- int res = fun(__VA_ARGS__, &retval); \
+ int res = __CV_EXPAND(fun(__VA_ARGS__, &retval)); \
if (res == CV_HAL_ERROR_OK) \
return retval; \
else if (res != CV_HAL_ERROR_NOT_IMPLEMENTED) \
#define CALL_HAL(name, fun, ...) \
- int res = fun(__VA_ARGS__); \
+ int res = __CV_EXPAND(fun(__VA_ARGS__)); \
if (res == CV_HAL_ERROR_OK) \
return; \
else if (res != CV_HAL_ERROR_NOT_IMPLEMENTED) \