ROOT  6.06/08
Reference Guide
Namespaces | Classes | Typedefs | Enumerations | Functions
ROOT::Vc::SSE Namespace Reference

Namespaces

 Internal
 

Classes

struct  c_general
 
struct  c_log
 
struct  c_log< double >
 
struct  c_trig
 
struct  Const
 
struct  CtorTypeHelper
 
struct  CtorTypeHelper< float >
 
struct  CtorTypeHelper< short >
 
struct  CtorTypeHelper< unsigned short >
 
class  DebugStream
 
struct  DetermineGatherMask
 
struct  DetermineGatherMask< Float8Mask >
 
struct  DetermineMask
 
struct  DetermineMask< sfloat, 8 >
 
struct  ExpandTypeHelper
 
struct  ExpandTypeHelper< float >
 
struct  ExpandTypeHelper< short >
 
struct  ExpandTypeHelper< unsigned short >
 
class  Float8GatherMask
 
class  Float8Mask
 
struct  ForeachHelper
 
struct  IndexTypeHelper
 
struct  IndexTypeHelper< 16u >
 
struct  IndexTypeHelper< 2u >
 
struct  IndexTypeHelper< 4u >
 
struct  IndexTypeHelper< 8u >
 
class  M256
 
class  Mask
 
struct  MaskHelper
 
struct  MaskHelper< 2 >
 
struct  MaskHelper< 4 >
 
struct  MaskHelper< 8 >
 
struct  ParameterHelper
 
struct  SortHelper
 
struct  SortHelper< M256, Size >
 
struct  StaticCastHelper
 
struct  StaticCastHelper< double, double >
 
struct  StaticCastHelper< double, float >
 
struct  StaticCastHelper< double, int >
 
struct  StaticCastHelper< double, unsigned int >
 
struct  StaticCastHelper< float, double >
 
struct  StaticCastHelper< float, float >
 
struct  StaticCastHelper< float, int >
 
struct  StaticCastHelper< float, short >
 
struct  StaticCastHelper< float, unsigned int >
 
struct  StaticCastHelper< float, unsigned short >
 
struct  StaticCastHelper< float8, short >
 
struct  StaticCastHelper< float8, unsigned short >
 
struct  StaticCastHelper< int, double >
 
struct  StaticCastHelper< int, float >
 
struct  StaticCastHelper< int, int >
 
struct  StaticCastHelper< int, unsigned int >
 
struct  StaticCastHelper< short, float8 >
 
struct  StaticCastHelper< short, short >
 
struct  StaticCastHelper< short, unsigned short >
 
struct  StaticCastHelper< unsigned int, double >
 
struct  StaticCastHelper< unsigned int, float >
 
struct  StaticCastHelper< unsigned int, int >
 
struct  StaticCastHelper< unsigned int, unsigned int >
 
struct  StaticCastHelper< unsigned short, float8 >
 
struct  StaticCastHelper< unsigned short, short >
 
struct  StaticCastHelper< unsigned short, unsigned short >
 
class  SwizzledVector
 
class  Vector
 
struct  VectorHelper
 
struct  VectorHelper< _M128 >
 
struct  VectorHelper< _M128D >
 
struct  VectorHelper< _M128I >
 
struct  VectorHelper< double >
 
struct  VectorHelper< float >
 
struct  VectorHelper< float8 >
 
struct  VectorHelper< int >
 
struct  VectorHelper< M256 >
 
struct  VectorHelper< signed short >
 
struct  VectorHelper< unsigned int >
 
struct  VectorHelper< unsigned short >
 
struct  VectorHelperSize
 
struct  VectorTraits
 
struct  VectorTypeHelper
 
struct  VectorTypeHelper< double >
 
struct  VectorTypeHelper< float >
 
struct  VectorTypeHelper< sfloat >
 
class  WriteMaskedVector
 

Typedefs

typedef long _long
 
typedef unsigned long _ulong
 
typedef Vc::sfloat float8
 
typedef Vector< double > double_v
 
typedef Vector< float > float_v
 
typedef Vector< float8sfloat_v
 
typedef Vector< int > int_v
 
typedef Vector< unsigned int > uint_v
 
typedef Vector< short > short_v
 
typedef Vector< unsigned short > ushort_v
 
typedef double_v::Mask double_m
 
typedef float_v::Mask float_m
 
typedef sfloat_v::Mask sfloat_m
 
typedef int_v::Mask int_m
 
typedef uint_v::Mask uint_m
 
typedef short_v::Mask short_m
 
typedef ushort_v::Mask ushort_m
 

Enumerations

enum  VectorAlignmentEnum { VectorAlignment = 16 }
 

Functions

template<typename To , typename From >
static Vc_ALWAYS_INLINE To Vc_CONST mm128_reinterpret_cast (VC_ALIGNED_PARAMETER(From) v)
 
template<>
Vc_ALWAYS_INLINE _M128I Vc_CONST mm128_reinterpret_cast< _M128I, _M128 > (VC_ALIGNED_PARAMETER(_M128) v)
 
template<>
Vc_ALWAYS_INLINE _M128I Vc_CONST mm128_reinterpret_cast< _M128I, _M128D > (VC_ALIGNED_PARAMETER(_M128D) v)
 
template<>
Vc_ALWAYS_INLINE _M128 Vc_CONST mm128_reinterpret_cast< _M128, _M128D > (VC_ALIGNED_PARAMETER(_M128D) v)
 
template<>
Vc_ALWAYS_INLINE _M128 Vc_CONST mm128_reinterpret_cast< _M128, _M128I > (VC_ALIGNED_PARAMETER(_M128I) v)
 
template<>
Vc_ALWAYS_INLINE _M128D Vc_CONST mm128_reinterpret_cast< _M128D, _M128I > (VC_ALIGNED_PARAMETER(_M128I) v)
 
template<>
Vc_ALWAYS_INLINE _M128D Vc_CONST mm128_reinterpret_cast< _M128D, _M128 > (VC_ALIGNED_PARAMETER(_M128) v)
 
template<typename To , typename From >
static Vc_ALWAYS_INLINE To Vc_CONST sse_cast (VC_ALIGNED_PARAMETER(From) v)
 
 ALIGN (16) extern const unsigned int _IndexesFromZero4[4]
 
static Vc_INTRINSIC __m128i Vc_CONST _mm_setallone ()
 
static Vc_INTRINSIC __m128i Vc_CONST _mm_setallone_si128 ()
 
static Vc_INTRINSIC __m128d Vc_CONST _mm_setallone_pd ()
 
static Vc_INTRINSIC __m128 Vc_CONST _mm_setallone_ps ()
 
static Vc_INTRINSIC __m128i Vc_CONST _mm_setone_epi8 ()
 
static Vc_INTRINSIC __m128i Vc_CONST _mm_setone_epu8 ()
 
static Vc_INTRINSIC __m128i Vc_CONST _mm_setone_epi16 ()
 
static Vc_INTRINSIC __m128i Vc_CONST _mm_setone_epu16 ()
 
static Vc_INTRINSIC __m128i Vc_CONST _mm_setone_epi32 ()
 
static Vc_INTRINSIC __m128i Vc_CONST _mm_setone_epu32 ()
 
static Vc_INTRINSIC __m128 Vc_CONST _mm_setone_ps ()
 
static Vc_INTRINSIC __m128d Vc_CONST _mm_setone_pd ()
 
static Vc_INTRINSIC __m128d Vc_CONST _mm_setabsmask_pd ()
 
static Vc_INTRINSIC __m128 Vc_CONST _mm_setabsmask_ps ()
 
static Vc_INTRINSIC __m128d Vc_CONST _mm_setsignmask_pd ()
 
static Vc_INTRINSIC __m128 Vc_CONST _mm_setsignmask_ps ()
 
static Vc_INTRINSIC __m128i Vc_CONST _mm_setmin_epi16 ()
 
static Vc_INTRINSIC __m128i Vc_CONST _mm_setmin_epi32 ()
 
static Vc_INTRINSIC __m128i Vc_CONST _mm_cmplt_epu16 (__m128i a, __m128i b)
 
static Vc_INTRINSIC __m128i Vc_CONST _mm_cmpgt_epu16 (__m128i a, __m128i b)
 
static Vc_INTRINSIC __m128i Vc_CONST _mm_cmplt_epu32 (__m128i a, __m128i b)
 
static Vc_INTRINSIC __m128i Vc_CONST _mm_cmpgt_epu32 (__m128i a, __m128i b)
 
static Vc_INTRINSIC __m128i Vc_CONST mm_abs_epi8 (__m128i a)
 
static Vc_INTRINSIC __m128i Vc_CONST mm_abs_epi16 (__m128i a)
 
static Vc_INTRINSIC __m128i Vc_CONST mm_abs_epi32 (__m128i a)
 
static Vc_INTRINSIC __m128i Vc_CONST set1_epi8 (int a)
 
static Vc_INTRINSIC __m128i Vc_CONST mm_alignr_epi8 (__m128i a, __m128i b, const int s)
 
static Vc_INTRINSIC __m128d mm_blendv_pd (__m128d a, __m128d b, __m128d c)
 
static Vc_INTRINSIC __m128 mm_blendv_ps (__m128 a, __m128 b, __m128 c)
 
static Vc_INTRINSIC __m128i mm_blendv_epi8 (__m128i a, __m128i b, __m128i c)
 
static Vc_INTRINSIC __m128d mm_blend_pd (__m128d a, __m128d b, const int mask)
 
static Vc_INTRINSIC __m128 mm_blend_ps (__m128 a, __m128 b, const int mask)
 
static Vc_INTRINSIC __m128i mm_blend_epi16 (__m128i a, __m128i b, const int mask)
 
static Vc_INTRINSIC __m128i Vc_CONST mm_max_epi8 (__m128i a, __m128i b)
 
static Vc_INTRINSIC __m128i Vc_CONST mm_max_epi32 (__m128i a, __m128i b)
 
static Vc_INTRINSIC __m128i Vc_CONST mm_max_epu16 (__m128i a, __m128i b)
 
static Vc_INTRINSIC __m128i Vc_CONST mm_max_epu32 (__m128i a, __m128i b)
 
static Vc_INTRINSIC __m128i Vc_CONST mm_min_epu16 (__m128i a, __m128i b)
 
static Vc_INTRINSIC __m128i Vc_CONST mm_min_epu32 (__m128i a, __m128i b)
 
static Vc_INTRINSIC __m128i Vc_CONST mm_min_epi8 (__m128i a, __m128i b)
 
static Vc_INTRINSIC __m128i Vc_CONST mm_min_epi32 (__m128i a, __m128i b)
 
static Vc_INTRINSIC Vc_CONST __m128i mm_cvtepu8_epi16 (__m128i epu8)
 
static Vc_INTRINSIC Vc_CONST __m128i mm_cvtepi8_epi16 (__m128i epi8)
 
static Vc_INTRINSIC Vc_CONST __m128i mm_cvtepu16_epi32 (__m128i epu16)
 
static Vc_INTRINSIC Vc_CONST __m128i mm_cvtepi16_epi32 (__m128i epu16)
 
static Vc_INTRINSIC Vc_CONST __m128i mm_cvtepu8_epi32 (__m128i epu8)
 
static Vc_INTRINSIC Vc_CONST __m128i mm_cvtepi8_epi32 (__m128i epi8)
 
static Vc_INTRINSIC Vc_PURE __m128i mm_stream_load_si128 (__m128i *mem)
 
static Vc_INTRINSIC Vc_CONST float extract_float_imm (const __m128 v, const size_t i)
 
static Vc_INTRINSIC Vc_CONST double extract_double_imm (const __m128d v, const size_t i)
 
static Vc_INTRINSIC Vc_CONST float extract_float (const __m128 v, const size_t i)
 
static Vc_INTRINSIC Vc_PURE __m128 _mm_stream_load (const float *mem)
 
static Vc_INTRINSIC Vc_PURE __m128d _mm_stream_load (const double *mem)
 
static Vc_INTRINSIC Vc_PURE __m128i _mm_stream_load (const int *mem)
 
static Vc_INTRINSIC Vc_PURE __m128i _mm_stream_load (const unsigned int *mem)
 
static Vc_INTRINSIC Vc_PURE __m128i _mm_stream_load (const short *mem)
 
static Vc_INTRINSIC Vc_PURE __m128i _mm_stream_load (const unsigned short *mem)
 
static Vc_INTRINSIC Vc_PURE __m128i _mm_stream_load (const signed char *mem)
 
static Vc_INTRINSIC Vc_PURE __m128i _mm_stream_load (const unsigned char *mem)
 
template<unsigned int LSize, unsigned int RSize>
Mask< LSize > operator & (const Mask< LSize > &lhs, const Mask< RSize > &rhs)
 Loop over all set bits in the mask. More...
 
template<unsigned int LSize, unsigned int RSize>
Mask< LSize > operator| (const Mask< LSize > &lhs, const Mask< RSize > &rhs)
 
template<unsigned int LSize, unsigned int RSize>
Mask< LSize > operator^ (const Mask< LSize > &lhs, const Mask< RSize > &rhs)
 
template<unsigned int Size>
void operator & (const Mask< Size > &lhs, const Float8Mask &rhs)
 
template<unsigned int Size>
void operator| (const Mask< Size > &lhs, const Float8Mask &rhs)
 
template<unsigned int Size>
void operator^ (const Mask< Size > &lhs, const Float8Mask &rhs)
 
template<unsigned int Size>
void operator & (const Float8Mask &rhs, const Mask< Size > &lhs)
 
template<unsigned int Size>
void operator| (const Float8Mask &rhs, const Mask< Size > &lhs)
 
template<unsigned int Size>
void operator^ (const Float8Mask &rhs, const Mask< Size > &lhs)
 
template<unsigned int LSize, unsigned int RSize>
void operator && (const Mask< LSize > &lhs, const Mask< RSize > &rhs)
 
template<unsigned int LSize, unsigned int RSize>
void operator|| (const Mask< LSize > &lhs, const Mask< RSize > &rhs)
 
template<unsigned int Size>
void operator && (const Mask< Size > &lhs, const Float8Mask &rhs)
 
template<unsigned int Size>
void operator|| (const Mask< Size > &lhs, const Float8Mask &rhs)
 
template<unsigned int Size>
void operator && (const Float8Mask &rhs, const Mask< Size > &lhs)
 
template<unsigned int Size>
void operator|| (const Float8Mask &rhs, const Mask< Size > &lhs)
 
template<unsigned int Size>
Vc_ALWAYS_INLINE Vc_PURE Mask< Size > operator && (const Mask< Size > &lhs, const Mask< Size > &rhs)
 
template<unsigned int Size>
Vc_ALWAYS_INLINE Vc_PURE Mask< Size > operator|| (const Mask< Size > &lhs, const Mask< Size > &rhs)
 
Vc_ALWAYS_INLINE Vc_PURE Mask< 8 > operator && (const Float8Mask &rhs, const Mask< 8 > &lhs)
 
Vc_ALWAYS_INLINE Vc_PURE Mask< 8 > operator|| (const Float8Mask &rhs, const Mask< 8 > &lhs)
 
Vc_ALWAYS_INLINE Vc_PURE Mask< 8 > operator && (const Mask< 8 > &rhs, const Float8Mask &lhs)
 
Vc_ALWAYS_INLINE Vc_PURE Mask< 8 > operator|| (const Mask< 8 > &rhs, const Float8Mask &lhs)
 
double_v frexp (const double_v &v, int_v *e)
 splits v into exponent and mantissa, the sign is kept with the mantissa More...
 
float_v frexp (const float_v &v, int_v *e)
 
sfloat_v frexp (const sfloat_v &v, short_v *e)
 
double_v ldexp (double_v::AsArg v, int_v::AsArg _e)
 
static void floor_shift (float_v &v, float_v::AsArg e)
 
static void floor_shift (sfloat_v &v, sfloat_v::AsArg e)
 
static void floor_shift (double_v &v, double_v::AsArg e)
 
template<typename T >
Vector< T > trunc (VC_ALIGNED_PARAMETER(Vector< T >) _v)
 
template<typename T >
Vector< T > floor (VC_ALIGNED_PARAMETER(Vector< T >) _v)
 
template<typename T >
Vector< T > ceil (VC_ALIGNED_PARAMETER(Vector< T >) _v)
 
template<typename V = Vector<float>>
class STRUCT_ALIGN1 (16) VectorAlignedBaseT
 
 STRUCT_ALIGN2 (16)
 
static Vc_ALWAYS_INLINE Vc_PURE int_v min (const int_v &x, const int_v &y)
 
static Vc_ALWAYS_INLINE Vc_PURE uint_v min (const uint_v &x, const uint_v &y)
 
static Vc_ALWAYS_INLINE Vc_PURE ushort_v min (const ushort_v &x, const ushort_v &y)
 
static Vc_ALWAYS_INLINE Vc_PURE float_v min (const float_v &x, const float_v &y)
 
static Vc_ALWAYS_INLINE Vc_PURE double_v min (const double_v &x, const double_v &y)
 
static Vc_ALWAYS_INLINE Vc_PURE int_v max (const int_v &x, const int_v &y)
 
static Vc_ALWAYS_INLINE Vc_PURE uint_v max (const uint_v &x, const uint_v &y)
 
static Vc_ALWAYS_INLINE Vc_PURE ushort_v max (const ushort_v &x, const ushort_v &y)
 
static Vc_ALWAYS_INLINE Vc_PURE float_v max (const float_v &x, const float_v &y)
 
static Vc_ALWAYS_INLINE Vc_PURE double_v max (const double_v &x, const double_v &y)
 
static Vc_ALWAYS_INLINE Vc_PURE sfloat_v min (const sfloat_v &x, const sfloat_v &y)
 
static Vc_ALWAYS_INLINE Vc_PURE sfloat_v max (const sfloat_v &x, const sfloat_v &y)
 
template<typename T >
static Vc_ALWAYS_INLINE Vc_PURE Vector< T > sqrt (const Vector< T > &x)
 
template<typename T >
static Vc_ALWAYS_INLINE Vc_PURE Vector< T > rsqrt (const Vector< T > &x)
 
template<typename T >
static Vc_ALWAYS_INLINE Vc_PURE Vector< T > abs (const Vector< T > &x)
 
template<typename T >
static Vc_ALWAYS_INLINE Vc_PURE Vector< T > reciprocal (const Vector< T > &x)
 
template<typename T >
static Vc_ALWAYS_INLINE Vc_PURE Vector< T > round (const Vector< T > &x)
 
template<typename T >
static Vc_ALWAYS_INLINE Vc_PURE Vector< T >::Mask isfinite (const Vector< T > &x)
 
template<typename T >
static Vc_ALWAYS_INLINE Vc_PURE Vector< T >::Mask isnan (const Vector< T > &x)
 
 V_ALIGN (64) const int c_general
 
 V_ALIGN (16) const unsigned int c_general = { 0, 1, 2, 3, 4, 5, 6, 7 }
 

Typedef Documentation

§ _long

typedef long ROOT::Vc::SSE::_long

Definition at line 43 of file types.h.

§ _ulong

typedef unsigned long ROOT::Vc::SSE::_ulong

Definition at line 52 of file types.h.

§ double_m

Definition at line 487 of file vector.h.

§ double_v

Definition at line 480 of file vector.h.

§ float8

Definition at line 58 of file types.h.

§ float_m

Definition at line 488 of file vector.h.

§ float_v

Definition at line 481 of file vector.h.

§ int_m

Definition at line 490 of file vector.h.

§ int_v

Definition at line 483 of file vector.h.

§ sfloat_m

Definition at line 489 of file vector.h.

§ sfloat_v

Definition at line 482 of file vector.h.

§ short_m

Definition at line 492 of file vector.h.

§ short_v

Definition at line 485 of file vector.h.

§ uint_m

Definition at line 491 of file vector.h.

§ uint_v

typedef Vector<unsigned int> ROOT::Vc::SSE::uint_v

Definition at line 484 of file vector.h.

§ ushort_m

Definition at line 493 of file vector.h.

§ ushort_v

typedef Vector<unsigned short> ROOT::Vc::SSE::ushort_v

Definition at line 486 of file vector.h.

Enumeration Type Documentation

§ VectorAlignmentEnum

Enumerator
VectorAlignment 

Definition at line 55 of file intrinsics.h.

Function Documentation

§ _mm_cmpgt_epu16()

static Vc_INTRINSIC __m128i Vc_CONST ROOT::Vc::SSE::_mm_cmpgt_epu16 ( __m128i  a,
__m128i  b 
)
static

§ _mm_cmpgt_epu32()

static Vc_INTRINSIC __m128i Vc_CONST ROOT::Vc::SSE::_mm_cmpgt_epu32 ( __m128i  a,
__m128i  b 
)
static

§ _mm_cmplt_epu16()

static Vc_INTRINSIC __m128i Vc_CONST ROOT::Vc::SSE::_mm_cmplt_epu16 ( __m128i  a,
__m128i  b 
)
static

Definition at line 109 of file intrinsics.h.

Referenced by ROOT::Vc::SSE::VectorHelper< unsigned short >::cmplt().

§ _mm_cmplt_epu32()

static Vc_INTRINSIC __m128i Vc_CONST ROOT::Vc::SSE::_mm_cmplt_epu32 ( __m128i  a,
__m128i  b 
)
static

Definition at line 113 of file intrinsics.h.

Referenced by ROOT::Vc::SSE::VectorHelper< unsigned int >::cmplt().

§ _mm_setabsmask_pd()

static Vc_INTRINSIC __m128d Vc_CONST ROOT::Vc::SSE::_mm_setabsmask_pd ( )
static

Definition at line 96 of file intrinsics.h.

Referenced by ROOT::Vc::SSE::VectorHelper< double >::abs().

§ _mm_setabsmask_ps()

static Vc_INTRINSIC __m128 Vc_CONST ROOT::Vc::SSE::_mm_setabsmask_ps ( )
static

Definition at line 97 of file intrinsics.h.

Referenced by ROOT::Vc::SSE::VectorHelper< float >::abs().

§ _mm_setallone()

static Vc_INTRINSIC __m128i Vc_CONST ROOT::Vc::SSE::_mm_setallone ( )
static

Definition at line 80 of file intrinsics.h.

Referenced by _mm_setallone_pd(), _mm_setallone_ps(), and _mm_setallone_si128().

§ _mm_setallone_pd()

static Vc_INTRINSIC __m128d Vc_CONST ROOT::Vc::SSE::_mm_setallone_pd ( )
static

Definition at line 83 of file intrinsics.h.

§ _mm_setallone_ps()

static Vc_INTRINSIC __m128 Vc_CONST ROOT::Vc::SSE::_mm_setallone_ps ( )
static

§ _mm_setallone_si128()

static Vc_INTRINSIC __m128i Vc_CONST ROOT::Vc::SSE::_mm_setallone_si128 ( )
static

§ _mm_setmin_epi16()

static Vc_INTRINSIC __m128i Vc_CONST ROOT::Vc::SSE::_mm_setmin_epi16 ( )
static

Definition at line 102 of file intrinsics.h.

Referenced by _mm_cmpgt_epu16(), and _mm_cmplt_epu16().

§ _mm_setmin_epi32()

static Vc_INTRINSIC __m128i Vc_CONST ROOT::Vc::SSE::_mm_setmin_epi32 ( )
static

Definition at line 103 of file intrinsics.h.

Referenced by _mm_cmpgt_epu32(), and _mm_cmplt_epu32().

§ _mm_setone_epi16()

static Vc_INTRINSIC __m128i Vc_CONST ROOT::Vc::SSE::_mm_setone_epi16 ( )
static

Definition at line 88 of file intrinsics.h.

Referenced by _mm_setone_epu16().

§ _mm_setone_epi32()

static Vc_INTRINSIC __m128i Vc_CONST ROOT::Vc::SSE::_mm_setone_epi32 ( )
static

Definition at line 90 of file intrinsics.h.

Referenced by _mm_setone_epu32().

§ _mm_setone_epi8()

static Vc_INTRINSIC __m128i Vc_CONST ROOT::Vc::SSE::_mm_setone_epi8 ( )
static

Definition at line 86 of file intrinsics.h.

Referenced by _mm_setone_epu8(), and mm_abs_epi8().

§ _mm_setone_epu16()

static Vc_INTRINSIC __m128i Vc_CONST ROOT::Vc::SSE::_mm_setone_epu16 ( )
static

Definition at line 89 of file intrinsics.h.

§ _mm_setone_epu32()

static Vc_INTRINSIC __m128i Vc_CONST ROOT::Vc::SSE::_mm_setone_epu32 ( )
static

Definition at line 91 of file intrinsics.h.

§ _mm_setone_epu8()

static Vc_INTRINSIC __m128i Vc_CONST ROOT::Vc::SSE::_mm_setone_epu8 ( )
static

Definition at line 87 of file intrinsics.h.

§ _mm_setone_pd()

static Vc_INTRINSIC __m128d Vc_CONST ROOT::Vc::SSE::_mm_setone_pd ( )
static

Definition at line 94 of file intrinsics.h.

§ _mm_setone_ps()

static Vc_INTRINSIC __m128 Vc_CONST ROOT::Vc::SSE::_mm_setone_ps ( )
static

Definition at line 93 of file intrinsics.h.

§ _mm_setsignmask_pd()

static Vc_INTRINSIC __m128d Vc_CONST ROOT::Vc::SSE::_mm_setsignmask_pd ( )
static

Definition at line 98 of file intrinsics.h.

§ _mm_setsignmask_ps()

static Vc_INTRINSIC __m128 Vc_CONST ROOT::Vc::SSE::_mm_setsignmask_ps ( )
static

Definition at line 99 of file intrinsics.h.

§ _mm_stream_load() [1/8]

static Vc_INTRINSIC Vc_PURE __m128 ROOT::Vc::SSE::_mm_stream_load ( const float *  mem)
static

Definition at line 552 of file intrinsics.h.

Referenced by _mm_stream_load().

§ _mm_stream_load() [2/8]

static Vc_INTRINSIC Vc_PURE __m128d ROOT::Vc::SSE::_mm_stream_load ( const double *  mem)
static

Definition at line 559 of file intrinsics.h.

§ _mm_stream_load() [3/8]

static Vc_INTRINSIC Vc_PURE __m128i ROOT::Vc::SSE::_mm_stream_load ( const int *  mem)
static

Definition at line 566 of file intrinsics.h.

§ _mm_stream_load() [4/8]

static Vc_INTRINSIC Vc_PURE __m128i ROOT::Vc::SSE::_mm_stream_load ( const unsigned int *  mem)
static

Definition at line 573 of file intrinsics.h.

§ _mm_stream_load() [5/8]

static Vc_INTRINSIC Vc_PURE __m128i ROOT::Vc::SSE::_mm_stream_load ( const short *  mem)
static

Definition at line 576 of file intrinsics.h.

§ _mm_stream_load() [6/8]

static Vc_INTRINSIC Vc_PURE __m128i ROOT::Vc::SSE::_mm_stream_load ( const unsigned short *  mem)
static

Definition at line 579 of file intrinsics.h.

§ _mm_stream_load() [7/8]

static Vc_INTRINSIC Vc_PURE __m128i ROOT::Vc::SSE::_mm_stream_load ( const signed char *  mem)
static

Definition at line 582 of file intrinsics.h.

§ _mm_stream_load() [8/8]

static Vc_INTRINSIC Vc_PURE __m128i ROOT::Vc::SSE::_mm_stream_load ( const unsigned char *  mem)
static

Definition at line 585 of file intrinsics.h.

§ abs()

template<typename T >
static Vc_ALWAYS_INLINE Vc_PURE Vector<T> ROOT::Vc::SSE::abs ( const Vector< T > &  x)
static

§ ALIGN()

ROOT::Vc::SSE::ALIGN ( 16  ) const

§ ceil()

template<typename T >
Vector<T> ROOT::Vc::SSE::ceil ( VC_ALIGNED_PARAMETER(Vector< T >)  _v)
inline

Definition at line 186 of file math.h.

Referenced by ldexp().

§ extract_double_imm()

static Vc_INTRINSIC Vc_CONST double ROOT::Vc::SSE::extract_double_imm ( const __m128d  v,
const size_t  i 
)
static

Definition at line 524 of file intrinsics.h.

§ extract_float()

static Vc_INTRINSIC Vc_CONST float ROOT::Vc::SSE::extract_float ( const __m128  v,
const size_t  i 
)
static

Definition at line 530 of file intrinsics.h.

§ extract_float_imm()

static Vc_INTRINSIC Vc_CONST float ROOT::Vc::SSE::extract_float_imm ( const __m128  v,
const size_t  i 
)
static

Definition at line 495 of file intrinsics.h.

Referenced by extract_float().

§ floor()

template<typename T >
Vector<T> ROOT::Vc::SSE::floor ( VC_ALIGNED_PARAMETER(Vector< T >)  _v)
inline

Definition at line 168 of file math.h.

Referenced by ldexp().

§ floor_shift() [1/3]

static void ROOT::Vc::SSE::floor_shift ( float_v v,
float_v::AsArg  e 
)
inlinestatic

Definition at line 117 of file math.h.

Referenced by ceil(), floor(), and trunc().

§ floor_shift() [2/3]

static void ROOT::Vc::SSE::floor_shift ( sfloat_v v,
sfloat_v::AsArg  e 
)
inlinestatic

Definition at line 125 of file math.h.

§ floor_shift() [3/3]

static void ROOT::Vc::SSE::floor_shift ( double_v v,
double_v::AsArg  e 
)
inlinestatic

Definition at line 136 of file math.h.

§ frexp() [1/3]

double_v ROOT::Vc::SSE::frexp ( const double_v v,
int_v e 
)
inline

splits v into exponent and mantissa, the sign is kept with the mantissa

The return value will be in the range [0.5, 1.0[ The e value will be an integer defining the power-of-two exponent

Definition at line 37 of file math.h.

§ frexp() [2/3]

float_v ROOT::Vc::SSE::frexp ( const float_v v,
int_v e 
)
inline

Definition at line 48 of file math.h.

§ frexp() [3/3]

sfloat_v ROOT::Vc::SSE::frexp ( const sfloat_v v,
short_v e 
)
inline

Definition at line 58 of file math.h.

§ isfinite()

template<typename T >
static Vc_ALWAYS_INLINE Vc_PURE Vector<T>::Mask ROOT::Vc::SSE::isfinite ( const Vector< T > &  x)
static

Definition at line 528 of file vector.h.

Referenced by frexp().

§ isnan()

template<typename T >
static Vc_ALWAYS_INLINE Vc_PURE Vector<T>::Mask ROOT::Vc::SSE::isnan ( const Vector< T > &  x)
static

Definition at line 529 of file vector.h.

Referenced by frexp().

§ ldexp()

sfloat_v ROOT::Vc::SSE::ldexp ( double_v::AsArg  v,
int_v::AsArg  _e 
)
inline

Definition at line 80 of file math.h.

§ max() [1/6]

static Vc_ALWAYS_INLINE Vc_PURE short_v ROOT::Vc::SSE::max ( const int_v x,
const int_v y 
)
static

§ max() [2/6]

static Vc_ALWAYS_INLINE Vc_PURE uint_v ROOT::Vc::SSE::max ( const uint_v x,
const uint_v y 
)
static

Definition at line 509 of file vector.h.

§ max() [3/6]

static Vc_ALWAYS_INLINE Vc_PURE ushort_v ROOT::Vc::SSE::max ( const ushort_v x,
const ushort_v y 
)
static

Definition at line 511 of file vector.h.

§ max() [4/6]

static Vc_ALWAYS_INLINE Vc_PURE float_v ROOT::Vc::SSE::max ( const float_v x,
const float_v y 
)
static

Definition at line 512 of file vector.h.

§ max() [5/6]

static Vc_ALWAYS_INLINE Vc_PURE double_v ROOT::Vc::SSE::max ( const double_v x,
const double_v y 
)
static

Definition at line 513 of file vector.h.

§ max() [6/6]

static Vc_ALWAYS_INLINE Vc_PURE sfloat_v ROOT::Vc::SSE::max ( const sfloat_v x,
const sfloat_v y 
)
static

Definition at line 518 of file vector.h.

Referenced by ROOT::Vc::AVX::Vector< T >::max(), and ROOT::Vc::SSE::Vector< T >::max().

§ min() [1/6]

static Vc_ALWAYS_INLINE Vc_PURE short_v ROOT::Vc::SSE::min ( const int_v x,
const int_v y 
)
static

§ min() [2/6]

static Vc_ALWAYS_INLINE Vc_PURE uint_v ROOT::Vc::SSE::min ( const uint_v x,
const uint_v y 
)
static

Definition at line 503 of file vector.h.

§ min() [3/6]

static Vc_ALWAYS_INLINE Vc_PURE ushort_v ROOT::Vc::SSE::min ( const ushort_v x,
const ushort_v y 
)
static

Definition at line 505 of file vector.h.

§ min() [4/6]

static Vc_ALWAYS_INLINE Vc_PURE float_v ROOT::Vc::SSE::min ( const float_v x,
const float_v y 
)
static

Definition at line 506 of file vector.h.

§ min() [5/6]

static Vc_ALWAYS_INLINE Vc_PURE double_v ROOT::Vc::SSE::min ( const double_v x,
const double_v y 
)
static

Definition at line 507 of file vector.h.

§ min() [6/6]

static Vc_ALWAYS_INLINE Vc_PURE sfloat_v ROOT::Vc::SSE::min ( const sfloat_v x,
const sfloat_v y 
)
static

Definition at line 515 of file vector.h.

Referenced by ROOT::Vc::AVX::Vector< T >::min(), and ROOT::Vc::SSE::Vector< T >::min().

§ mm128_reinterpret_cast()

template<typename To , typename From >
static Vc_ALWAYS_INLINE To Vc_CONST ROOT::Vc::SSE::mm128_reinterpret_cast ( VC_ALIGNED_PARAMETER(From)  v)
static

§ mm128_reinterpret_cast< _M128, _M128D >()

Definition at line 34 of file casts.h.

§ mm128_reinterpret_cast< _M128, _M128I >()

Definition at line 35 of file casts.h.

§ mm128_reinterpret_cast< _M128D, _M128 >()

Definition at line 37 of file casts.h.

§ mm128_reinterpret_cast< _M128D, _M128I >()

Definition at line 36 of file casts.h.

§ mm128_reinterpret_cast< _M128I, _M128 >()

Definition at line 32 of file casts.h.

§ mm128_reinterpret_cast< _M128I, _M128D >()

Definition at line 33 of file casts.h.

§ mm_abs_epi16()

static Vc_INTRINSIC __m128i Vc_CONST ROOT::Vc::SSE::mm_abs_epi16 ( __m128i  a)
static

Definition at line 175 of file intrinsics.h.

Referenced by ROOT::Vc::SSE::VectorHelper< signed short >::abs().

§ mm_abs_epi32()

static Vc_INTRINSIC __m128i Vc_CONST ROOT::Vc::SSE::mm_abs_epi32 ( __m128i  a)
static

Definition at line 179 of file intrinsics.h.

Referenced by ROOT::Vc::SSE::VectorHelper< int >::abs().

§ mm_abs_epi8()

static Vc_INTRINSIC __m128i Vc_CONST ROOT::Vc::SSE::mm_abs_epi8 ( __m128i  a)
static

Definition at line 161 of file intrinsics.h.

§ mm_alignr_epi8()

static Vc_INTRINSIC __m128i Vc_CONST ROOT::Vc::SSE::mm_alignr_epi8 ( __m128i  a,
__m128i  b,
const int  s 
)
static

Definition at line 186 of file intrinsics.h.

§ mm_blend_epi16()

static Vc_INTRINSIC __m128i ROOT::Vc::SSE::mm_blend_epi16 ( __m128i  a,
__m128i  b,
const int  mask 
)
static

Definition at line 360 of file intrinsics.h.

§ mm_blend_pd()

static Vc_INTRINSIC __m128d ROOT::Vc::SSE::mm_blend_pd ( __m128d  a,
__m128d  b,
const int  mask 
)
static

Definition at line 288 of file intrinsics.h.

§ mm_blend_ps()

static Vc_INTRINSIC __m128 ROOT::Vc::SSE::mm_blend_ps ( __m128  a,
__m128  b,
const int  mask 
)
static

Definition at line 303 of file intrinsics.h.

§ mm_blendv_epi8()

static Vc_INTRINSIC __m128i ROOT::Vc::SSE::mm_blendv_epi8 ( __m128i  a,
__m128i  b,
__m128i  c 
)
static

§ mm_blendv_pd()

static Vc_INTRINSIC __m128d ROOT::Vc::SSE::mm_blendv_pd ( __m128d  a,
__m128d  b,
__m128d  c 
)
static

Definition at line 276 of file intrinsics.h.

Referenced by ROOT::Vc::SSE::VectorHelper< double >::fma().

§ mm_blendv_ps()

static Vc_INTRINSIC __m128 ROOT::Vc::SSE::mm_blendv_ps ( __m128  a,
__m128  b,
__m128  c 
)
static

§ mm_cvtepi16_epi32()

static Vc_INTRINSIC Vc_CONST __m128i ROOT::Vc::SSE::mm_cvtepi16_epi32 ( __m128i  epu16)
static

Definition at line 459 of file intrinsics.h.

§ mm_cvtepi8_epi16()

static Vc_INTRINSIC Vc_CONST __m128i ROOT::Vc::SSE::mm_cvtepi8_epi16 ( __m128i  epi8)
static

Definition at line 453 of file intrinsics.h.

§ mm_cvtepi8_epi32()

static Vc_INTRINSIC Vc_CONST __m128i ROOT::Vc::SSE::mm_cvtepi8_epi32 ( __m128i  epi8)
static

Definition at line 465 of file intrinsics.h.

§ mm_cvtepu16_epi32()

static Vc_INTRINSIC Vc_CONST __m128i ROOT::Vc::SSE::mm_cvtepu16_epi32 ( __m128i  epu16)
static

Definition at line 456 of file intrinsics.h.

Referenced by mm_cvtepu8_epi32().

§ mm_cvtepu8_epi16()

static Vc_INTRINSIC Vc_CONST __m128i ROOT::Vc::SSE::mm_cvtepu8_epi16 ( __m128i  epu8)
static

Definition at line 450 of file intrinsics.h.

Referenced by mm_cvtepu8_epi32().

§ mm_cvtepu8_epi32()

static Vc_INTRINSIC Vc_CONST __m128i ROOT::Vc::SSE::mm_cvtepu8_epi32 ( __m128i  epu8)
static

Definition at line 462 of file intrinsics.h.

§ mm_max_epi32()

static Vc_INTRINSIC __m128i Vc_CONST ROOT::Vc::SSE::mm_max_epi32 ( __m128i  a,
__m128i  b 
)
static

Definition at line 423 of file intrinsics.h.

Referenced by ROOT::Vc::SSE::VectorHelper< int >::max(), and max().

§ mm_max_epi8()

static Vc_INTRINSIC __m128i Vc_CONST ROOT::Vc::SSE::mm_max_epi8 ( __m128i  a,
__m128i  b 
)
static

Definition at line 420 of file intrinsics.h.

§ mm_max_epu16()

static Vc_INTRINSIC __m128i Vc_CONST ROOT::Vc::SSE::mm_max_epu16 ( __m128i  a,
__m128i  b 
)
static

Definition at line 429 of file intrinsics.h.

Referenced by max().

§ mm_max_epu32()

static Vc_INTRINSIC __m128i Vc_CONST ROOT::Vc::SSE::mm_max_epu32 ( __m128i  a,
__m128i  b 
)
static

Definition at line 432 of file intrinsics.h.

Referenced by max(), and ROOT::Vc::SSE::VectorHelper< unsigned int >::max().

§ mm_min_epi32()

static Vc_INTRINSIC __m128i Vc_CONST ROOT::Vc::SSE::mm_min_epi32 ( __m128i  a,
__m128i  b 
)
static

Definition at line 447 of file intrinsics.h.

Referenced by ROOT::Vc::SSE::VectorHelper< int >::min(), and min().

§ mm_min_epi8()

static Vc_INTRINSIC __m128i Vc_CONST ROOT::Vc::SSE::mm_min_epi8 ( __m128i  a,
__m128i  b 
)
static

Definition at line 444 of file intrinsics.h.

§ mm_min_epu16()

static Vc_INTRINSIC __m128i Vc_CONST ROOT::Vc::SSE::mm_min_epu16 ( __m128i  a,
__m128i  b 
)
static

Definition at line 438 of file intrinsics.h.

Referenced by min().

§ mm_min_epu32()

static Vc_INTRINSIC __m128i Vc_CONST ROOT::Vc::SSE::mm_min_epu32 ( __m128i  a,
__m128i  b 
)
static

Definition at line 441 of file intrinsics.h.

Referenced by min(), and ROOT::Vc::SSE::VectorHelper< unsigned int >::min().

§ mm_stream_load_si128()

static Vc_INTRINSIC Vc_PURE __m128i ROOT::Vc::SSE::mm_stream_load_si128 ( __m128i *  mem)
static

Definition at line 470 of file intrinsics.h.

§ operator &() [1/3]

template<unsigned int LSize, unsigned int RSize>
Mask<LSize> ROOT::Vc::SSE::operator& ( const Mask< LSize > &  lhs,
const Mask< RSize > &  rhs 
)

Loop over all set bits in the mask.

The iterator variable will be set to the position of the set bits. A mask of e.g. 00011010 would result in the loop being called with the iterator being set to 1, 3, and 4.

This allows you to write:

float_v a = ...;
foreach_bit(int i, a < 0.f) {
std::cout << a[i] << "\n";
}

The example prints all the values in a that are negative, and only those.

Parameters
itThe iterator variable. For example "int i".
maskThe mask to iterate over. You can also just write a vector operation that returns a mask.

Definition at line 544 of file mask.h.

Referenced by operator^().

§ operator &() [2/3]

template<unsigned int Size>
void ROOT::Vc::SSE::operator& ( const Mask< Size > &  lhs,
const Float8Mask rhs 
)

§ operator &() [3/3]

template<unsigned int Size>
void ROOT::Vc::SSE::operator& ( const Float8Mask rhs,
const Mask< Size > &  lhs 
)

§ operator &&() [1/6]

template<unsigned int LSize, unsigned int RSize>
void ROOT::Vc::SSE::operator&& ( const Mask< LSize > &  lhs,
const Mask< RSize > &  rhs 
)

Referenced by operator^().

§ operator &&() [2/6]

template<unsigned int Size>
void ROOT::Vc::SSE::operator&& ( const Mask< Size > &  lhs,
const Float8Mask rhs 
)

§ operator &&() [3/6]

template<unsigned int Size>
void ROOT::Vc::SSE::operator&& ( const Float8Mask rhs,
const Mask< Size > &  lhs 
)

§ operator &&() [4/6]

template<unsigned int Size>
Vc_ALWAYS_INLINE Vc_PURE Mask<Size> ROOT::Vc::SSE::operator&& ( const Mask< Size > &  lhs,
const Mask< Size > &  rhs 
)

Definition at line 565 of file mask.h.

§ operator &&() [5/6]

Vc_ALWAYS_INLINE Vc_PURE Mask<8> ROOT::Vc::SSE::operator&& ( const Float8Mask rhs,
const Mask< 8 > &  lhs 
)

Definition at line 567 of file mask.h.

§ operator &&() [6/6]

Vc_ALWAYS_INLINE Vc_PURE Mask<8> ROOT::Vc::SSE::operator&& ( const Mask< 8 > &  rhs,
const Float8Mask lhs 
)

Definition at line 569 of file mask.h.

§ operator^() [1/3]

template<unsigned int LSize, unsigned int RSize>
Mask<LSize> ROOT::Vc::SSE::operator^ ( const Mask< LSize > &  lhs,
const Mask< RSize > &  rhs 
)

Definition at line 546 of file mask.h.

§ operator^() [2/3]

template<unsigned int Size>
void ROOT::Vc::SSE::operator^ ( const Mask< Size > &  lhs,
const Float8Mask rhs 
)

§ operator^() [3/3]

template<unsigned int Size>
void ROOT::Vc::SSE::operator^ ( const Float8Mask rhs,
const Mask< Size > &  lhs 
)

§ operator|() [1/3]

template<unsigned int LSize, unsigned int RSize>
Mask<LSize> ROOT::Vc::SSE::operator| ( const Mask< LSize > &  lhs,
const Mask< RSize > &  rhs 
)

Definition at line 545 of file mask.h.

Referenced by operator^().

§ operator|() [2/3]

template<unsigned int Size>
void ROOT::Vc::SSE::operator| ( const Mask< Size > &  lhs,
const Float8Mask rhs 
)

§ operator|() [3/3]

template<unsigned int Size>
void ROOT::Vc::SSE::operator| ( const Float8Mask rhs,
const Mask< Size > &  lhs 
)

§ operator||() [1/6]

template<unsigned int LSize, unsigned int RSize>
void ROOT::Vc::SSE::operator|| ( const Mask< LSize > &  lhs,
const Mask< RSize > &  rhs 
)

Referenced by operator^().

§ operator||() [2/6]

template<unsigned int Size>
void ROOT::Vc::SSE::operator|| ( const Mask< Size > &  lhs,
const Float8Mask rhs 
)

§ operator||() [3/6]

template<unsigned int Size>
void ROOT::Vc::SSE::operator|| ( const Float8Mask rhs,
const Mask< Size > &  lhs 
)

§ operator||() [4/6]

template<unsigned int Size>
Vc_ALWAYS_INLINE Vc_PURE Mask<Size> ROOT::Vc::SSE::operator|| ( const Mask< Size > &  lhs,
const Mask< Size > &  rhs 
)

Definition at line 566 of file mask.h.

§ operator||() [5/6]

Vc_ALWAYS_INLINE Vc_PURE Mask<8> ROOT::Vc::SSE::operator|| ( const Float8Mask rhs,
const Mask< 8 > &  lhs 
)

Definition at line 568 of file mask.h.

§ operator||() [6/6]

Vc_ALWAYS_INLINE Vc_PURE Mask<8> ROOT::Vc::SSE::operator|| ( const Mask< 8 > &  rhs,
const Float8Mask lhs 
)

Definition at line 570 of file mask.h.

§ reciprocal()

template<typename T >
static Vc_ALWAYS_INLINE Vc_PURE Vector<T> ROOT::Vc::SSE::reciprocal ( const Vector< T > &  x)
static

Definition at line 525 of file vector.h.

Referenced by ROOT::Vc::AVX::reciprocal().

§ round()

template<typename T >
static Vc_ALWAYS_INLINE Vc_PURE Vector<T> ROOT::Vc::SSE::round ( const Vector< T > &  x)
static

Definition at line 526 of file vector.h.

Referenced by ROOT::Vc::AVX::round().

§ rsqrt()

template<typename T >
static Vc_ALWAYS_INLINE Vc_PURE Vector<T> ROOT::Vc::SSE::rsqrt ( const Vector< T > &  x)
static

Definition at line 523 of file vector.h.

Referenced by ROOT::Vc::AVX::rsqrt().

§ set1_epi8()

static Vc_INTRINSIC __m128i Vc_CONST ROOT::Vc::SSE::set1_epi8 ( int  a)
static

Definition at line 183 of file intrinsics.h.

Referenced by _mm_cmpgt_epu32().

§ sqrt()

template<typename T >
static Vc_ALWAYS_INLINE Vc_PURE Vector<T> ROOT::Vc::SSE::sqrt ( const Vector< T > &  x)
static

Definition at line 522 of file vector.h.

Referenced by ROOT::Vc::SSE::VectorHelper< double >::OP().

§ sse_cast()

template<typename To , typename From >
static Vc_ALWAYS_INLINE To Vc_CONST ROOT::Vc::SSE::sse_cast ( VC_ALIGNED_PARAMETER(From)  v)
static

Definition at line 38 of file casts.h.

§ STRUCT_ALIGN1()

template<typename V = Vector<float>>
class ROOT::Vc::SSE::STRUCT_ALIGN1 ( 16  )

Definition at line 151 of file types.h.

§ STRUCT_ALIGN2()

ROOT::Vc::SSE::STRUCT_ALIGN2 ( 16  )

Referenced by STRUCT_ALIGN1().

§ trunc()

template<typename T >
Vector<T> ROOT::Vc::SSE::trunc ( VC_ALIGNED_PARAMETER(Vector< T >)  _v)
inline

Definition at line 150 of file math.h.

Referenced by ldexp(), and ROOT::Vc::Scalar::trunc().

§ V_ALIGN() [1/2]

ROOT::Vc::SSE::V_ALIGN ( 64  ) const

Definition at line 257 of file const.cpp.

Referenced by ROOT::Vc::SSE::c_trig< T >::data(), and V_ALIGN().

§ V_ALIGN() [2/2]

ROOT::Vc::SSE::V_ALIGN ( 16  ) const = { 0, 1, 2, 3, 4, 5, 6, 7 }

Definition at line 258 of file const.cpp.