Backport fixes for IPP v9

This commit is contained in:
Chris Cannam
2018-05-14 20:41:25 +01:00
parent 4d63c025e2
commit 486ab5de62
4 changed files with 266 additions and 134 deletions

View File

@@ -28,9 +28,13 @@
#ifndef _MSC_VER
#include <inttypes.h>
#endif
#include <ippversion.h>
#include <ipps.h>
#if (IPP_VERSION_MAJOR <= 7)
// Deprecated in v8, removed in v9
#include <ippac.h>
#endif
#endif
#ifdef HAVE_VDSP
#include <Accelerate/Accelerate.h>
@@ -711,6 +715,8 @@ inline void v_interleave(T *const R__ dst,
}
#if defined HAVE_IPP
#if (IPP_VERSION_MAJOR <= 7)
// Deprecated in v8, removed in v9
template<>
inline void v_interleave(float *const R__ dst,
const float *const R__ *const R__ src,
@@ -721,6 +727,7 @@ inline void v_interleave(float *const R__ dst,
}
// IPP does not (currently?) provide double-precision interleave
#endif
#endif
template<typename T>
inline void v_deinterleave(T *const R__ *const R__ dst,
@@ -751,6 +758,8 @@ inline void v_deinterleave(T *const R__ *const R__ dst,
}
#if defined HAVE_IPP
#if (IPP_VERSION_MAJOR <= 7)
// Deprecated in v8, removed in v9
template<>
inline void v_deinterleave(float *const R__ *const R__ dst,
const float *const R__ src,
@@ -761,6 +770,7 @@ inline void v_deinterleave(float *const R__ *const R__ dst,
}
// IPP does not (currently?) provide double-precision deinterleave
#endif
#endif
template<typename T>
inline void v_fftshift(T *const R__ ptr,

View File

@@ -48,7 +48,8 @@
#include <iostream>
#ifdef HAVE_IPP
#include <ipp.h> // for static init
#include <ippversion.h>
#include <ipp.h>
#endif
#ifdef HAVE_VDSP
@@ -175,8 +176,10 @@ void system_specific_initialise()
{
#if defined HAVE_IPP
#ifndef USE_IPP_DYNAMIC_LIBS
// std::cerr << "Calling ippStaticInit" << std::endl;
#if (IPP_VERSION_MAJOR < 9)
// This was removed in v9
ippStaticInit();
#endif
#endif
ippSetDenormAreZeros(1);
#elif defined HAVE_VDSP