IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
Classes | Namespaces | Macros
IsGreaterRegImpl.h File Reference
#include <IPSDKUtil/InstructionSet/Comparison/detail/IsGreaterReg.h>
#include <IPSDKUtil/InstructionSet/Logical/detail/AllBitsToOneReg.h>
#include <IPSDKUtil/InstructionSet/Logical/detail/AllBitsToZeroReg.h>
#include <IPSDKUtil/InstructionSet/Logical/detail/MaskBlendReg.h>

Go to the source code of this file.

Classes

struct  ipsdk::simd::detail::IsGreaterReg< eInstructionSet::eIS_Avx512, ipReal32 >
 
struct  ipsdk::simd::detail::IsGreaterReg< eInstructionSet::eIS_Avx512, ipReal64 >
 

Namespaces

 ipsdk
 Main namespace for IPSDK library.
 
 ipsdk::simd
 Namespace agregating IPSDK SIMD routines and classes.
 

Macros

#define DEFINE_ISGREATERREG_INT(nbBitsInInt, nbBitsInMask)
 
#define DEFINE_ISGREATERREG_UINT(nbBitsInInt, nbBitsInMask)
 

Detailed Description

Author
H. Delestre
Date
2018/03/14

Macro Definition Documentation

◆ DEFINE_ISGREATERREG_INT

#define DEFINE_ISGREATERREG_INT (   nbBitsInInt,
  nbBitsInMask 
)
Value:
template <> \
struct IsGreaterReg<eInstructionSet::eIS_Avx512, ipInt ## nbBitsInInt> \
{ \
static IPSDK_FORCEINLINE \
__mmask ## nbBitsInMask \
act(const Avx512Type<ipInt ## nbBitsInInt>::Type& in1, \
const Avx512Type<ipInt ## nbBitsInInt>::Type& in2) \
{ \
return _mm512_cmp_epi ## nbBitsInInt ## _mask(in1, in2, _MM_CMPINT_GT); \
} \
static IPSDK_FORCEINLINE \
void \
act(const Avx512Type<ipInt ## nbBitsInInt>::Type& in1, \
const Avx512Type<ipInt ## nbBitsInInt>::Type& in2, \
__mmask ## nbBitsInMask &out) \
{ \
out = _mm512_cmp_epi ## nbBitsInInt ## _mask(in1, in2, _MM_CMPINT_GT); \
} \
};

◆ DEFINE_ISGREATERREG_UINT

#define DEFINE_ISGREATERREG_UINT (   nbBitsInInt,
  nbBitsInMask 
)
Value:
template <> \
struct IsGreaterReg<eInstructionSet::eIS_Avx512, ipUInt ## nbBitsInInt> \
{ \
static IPSDK_FORCEINLINE \
__mmask ## nbBitsInMask \
act(const Avx512Type<ipUInt ## nbBitsInInt>::Type& in1, \
const Avx512Type<ipUInt ## nbBitsInInt>::Type& in2) \
{ \
return _mm512_cmp_epu ## nbBitsInInt ## _mask(in1, in2, _MM_CMPINT_GT); \
} \
\
static IPSDK_FORCEINLINE \
void \
act(const Avx512Type<ipUInt ## nbBitsInInt>::Type& in1, \
const Avx512Type<ipUInt ## nbBitsInInt>::Type& in2, \
__mmask ## nbBitsInMask &out) \
{ \
out = _mm512_cmp_epu ## nbBitsInInt ## _mask(in1, in2, _MM_CMPINT_GT); \
} \
};