core(stat): add required CV_AVX_GUARD

Added guard with 'vzeroupper' instruction
pull/9074/head
Alexander Alekhin 8 years ago
parent c45d3568ae
commit b66c349bba
  1. 6
      modules/core/include/opencv2/core/cv_cpu_dispatch.h
  2. 4
      modules/core/src/stat.simd.hpp

@ -111,6 +111,12 @@ struct VZeroUpperGuard {
#define __CV_AVX_GUARD VZeroUpperGuard __vzeroupper_guard;
#endif
#ifdef __CV_AVX_GUARD
#define CV_AVX_GUARD __CV_AVX_GUARD
#else
#define CV_AVX_GUARD
#endif
#endif // __OPENCV_BUILD

@ -28,6 +28,8 @@ static inline int _mm256_extract_epi32_(__m256i reg, const int i)
int normHamming(const uchar* a, int n)
{
CV_AVX_GUARD;
int i = 0;
int result = 0;
#if CV_AVX2
@ -94,6 +96,8 @@ int normHamming(const uchar* a, int n)
int normHamming(const uchar* a, const uchar* b, int n)
{
CV_AVX_GUARD;
int i = 0;
int result = 0;
#if CV_AVX2

Loading…
Cancel
Save