Commit 7c72e095 authored by Lindsay Roberts's avatar Lindsay Roberts

Fix Flann compilation under nvcc + NEON

All <arm_neon.h> includes in core/cv_cpu_dispatch.h are protected by an
ifndef __CUDACC__ to prevent attempting to use neon intrinsics when
compiling cuda kernels (.cu) -- this prevents hard errors such as
  error: identifier "__builtin_neon_qi" is undefined

Add this same protection to flann/dist.h to fix compilation involving
flann.hpp.
parent aebb6668
...@@ -47,7 +47,7 @@ typedef unsigned __int64 uint64_t; ...@@ -47,7 +47,7 @@ typedef unsigned __int64 uint64_t;
# include <Intrin.h> # include <Intrin.h>
#endif #endif
#ifdef __ARM_NEON__ #if defined(__ARM_NEON__) && !defined(__CUDACC__)
# include "arm_neon.h" # include "arm_neon.h"
#endif #endif
...@@ -425,7 +425,7 @@ struct Hamming ...@@ -425,7 +425,7 @@ struct Hamming
ResultType operator()(Iterator1 a, Iterator2 b, size_t size, ResultType /*worst_dist*/ = -1) const ResultType operator()(Iterator1 a, Iterator2 b, size_t size, ResultType /*worst_dist*/ = -1) const
{ {
ResultType result = 0; ResultType result = 0;
#ifdef __ARM_NEON__ #if defined(__ARM_NEON__) && !defined(__CUDACC__)
{ {
uint32x4_t bits = vmovq_n_u32(0); uint32x4_t bits = vmovq_n_u32(0);
for (size_t i = 0; i < size; i += 16) { for (size_t i = 0; i < size; i += 16) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment