24 #include "../common/storage.h"
26 #define VC_DOUBLE_V_SIZE 2
27 #define VC_FLOAT_V_SIZE 4
28 #define VC_SFLOAT_V_SIZE 8
29 #define VC_INT_V_SIZE 4
30 #define VC_UINT_V_SIZE 4
31 #define VC_SHORT_V_SIZE 8
32 #define VC_USHORT_V_SIZE 8
34 #include "../common/types.h"
42 template<
typename T>
class Vector;
48 typedef __int64
_long;
49 typedef unsigned __int64
_ulong;
58 template<
unsigned int VectorSize>
class Mask;
74 #ifdef VC_COMPILE_BENCHMARKS
79 #ifdef VC_CHECK_ALIGNMENT
82 const size_t s =
sizeof(__m128);
83 if((reinterpret_cast<size_t>(ptr) & ((s ^ (s & (s - 1))) - 1)) != 0) {
84 fprintf(stderr,
"A vector with incorrect alignment has just been created. Look at the stacktrace to find the guilty object.\n");
95 #if defined VC_MSVC && !defined _WIN64
150 template<
typename V = Vector<
float> >
163 #endif // SSE_TYPES_H
DetermineEntryType< T >::Type EntryType
DetermineGatherMask< MaskType >::Type GatherMaskType
Namespace for new ROOT classes and functions.
Vector< typename IndexTypeHelper< Size >::Type > IndexType
#define FREE_STORE_OPERATORS_ALIGNED(alignment)
static Vc_INTRINSIC Vc_CONST M256 create(_M128 a, _M128 b)
DetermineMask< T, Size >::Type MaskType
Vc_INTRINSIC _M128 & operator[](int i)
static Vc_ALWAYS_INLINE void assertCorrectAlignment(const _T *)
Vc_INTRINSIC const _M128 & operator[](int i) const
VectorTypeHelper< T >::Type VectorType
Common::VectorMemoryUnion< VectorType, EntryType > StorageType
class STRUCT_ALIGN1(16) VectorAlignedBaseT
static Vc_INTRINSIC Vc_CONST M256 dup(_M128 a)