20 #ifndef VC_AVX_CONST_DATA_H
21 #define VC_AVX_CONST_DATA_H
30 ALIGN(64) extern const
unsigned int _IndexesFromZero32[8];
31 ALIGN(16) extern const
unsigned short _IndexesFromZero16[8];
32 ALIGN(16) extern const
unsigned char _IndexesFromZero8[16];
36 static const float oneFloat;
37 static const unsigned int absMaskFloat[2];
38 static const unsigned int signMaskFloat[2];
39 static const unsigned int highMaskFloat;
40 static const unsigned short minShort[2];
41 static const unsigned short one16[2];
42 static const float _2power31;
43 static const double oneDouble;
44 static const unsigned long long frexpMask;
45 static const unsigned long long highMaskDouble;
50 ALIGN(64)
static const T data[];
53 template<
typename T>
struct c_log
56 static Vc_ALWAYS_INLINE float d(
int i) {
return *
reinterpret_cast<const floatAlias *
>(&data[i]); }
57 ALIGN(64) static const
unsigned int data[];
64 static Vc_ALWAYS_INLINE double d(
int i) {
return *
reinterpret_cast<const doubleAlias *
>(&data[i]); }
65 ALIGN(64) static const
unsigned long long data[];
72 #include "undomacros.h"
74 #endif // VC_AVX_CONST_DATA_H
Small helper to encapsulate whether to return the value pointed to by the iterator or its address...
struct STRUCT_ALIGN1(64) c_general
float floatAlias Vc_MAY_ALIAS
ALIGN(64) static const T data[]
ALIGN(64) static const unsigned int data[]
static Vc_ALWAYS_INLINE float d(int i)
ALIGN(64) extern const unsigned int _IndexesFromZero32[8]
static Vc_ALWAYS_INLINE double d(int i)
double doubleAlias Vc_MAY_ALIAS