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.
pull/13865/head
Lindsay Roberts 6 years ago
parent aebb66682b
commit 7c72e095fa
  1. 4
      modules/flann/include/opencv2/flann/dist.h

@ -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
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) {

Loading…
Cancel
Save