15 #ifndef __IPSDKUTIL_INSTRUCTIONSETTYPES_H__ 16 #define __IPSDKUTIL_INSTRUCTIONSETTYPES_H__ 96 struct ISAlignmentType
103 #define IPSDK_INSTRUCTIONSET_TO_ALIGNMENT_TYPE(instructionSet, alignmentType) \ 104 template<> struct ISAlignmentType<instructionSet> { \ 105 static const eISAlignment::domain g_alignmentType = alignmentType; \ 127 template <eISAlignment::domain alignment>
128 struct ISAlignmentSize
135 #define IPSDK_ALIGNMENT_TYPE_TO_SIZE(alignmentType, size) \ 136 template<> struct ISAlignmentSize<alignmentType> { \ 137 static const ipUInt8 g_size = size; \ 155 #endif // __IPSDKUTIL_INSTRUCTIONSETTYPES_H__ Fused multiplyadd.
Definition: InstructionSetTypes.h:46
std::set< eInstructionSet > InstructionSetColl
instruction set collection
Definition: InstructionSetTypes.h:77
IPSDK_FORCEINLINE void set(T *buffer, T value, ipUInt64 nbElts)
set function; assigns a given value to the 'nbElts' elements of a buffer
Definition: set.h:34
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
8 bytes alignment
Definition: InstructionSetTypes.h:63
32 bytes alignment
Definition: InstructionSetTypes.h:67
Streaming SIMD Extensions 4.1.
Definition: InstructionSetTypes.h:40
64 bytes alignment
Definition: InstructionSetTypes.h:69
(including fundation and byte and word instructions)
Definition: InstructionSetTypes.h:51
Base types for multiplatform compatibility.
eInstructionSet
Enumerate for processor instruction set description.
Definition: InstructionSetTypes.h:31
Advanced Vector Extensions.
Definition: InstructionSetTypes.h:44
No alignment.
Definition: InstructionSetTypes.h:61
IPSDK_ALIGNMENT_TYPE_TO_SIZE(eISAlignment::eISA_None, 1)
Advanced Vector Extensions 2.
Definition: InstructionSetTypes.h:48
IPSDK_INSTRUCTIONSET_TO_ALIGNMENT_TYPE(eInstructionSet::eIS_Standard, eISAlignment::eISA_None)
Streaming SIMD Extensions 4.2.
Definition: InstructionSetTypes.h:42
Streaming SIMD Extensions 3.
Definition: InstructionSetTypes.h:38
eISAlignment
Enumerate describing memory data alignments.
Definition: InstructionSetTypes.h:59
16 bytes alignment
Definition: InstructionSetTypes.h:65
Streaming SIMD Extensions 2.
Definition: InstructionSetTypes.h:36
Predefined macros for enumerates management.
compiler optimisations only
Definition: InstructionSetTypes.h:34
#define IPSDK_ENUM(enumTypeStr, enumSeq)
macro allowing to declare an enumerate for library
Definition: EnumMacros.h:26