vSMC
vSMC: Scalable Monte Carlo
Public Types | Public Member Functions | Static Public Member Functions | List of all members
vsmc::M128I< IntType > Class Template Reference

Using __m128i as integer vector. More...

#include <vsmc/utility/simd.hpp>

Public Types

using value_type = IntType
 

Public Member Functions

 M128I ()=default
 
 M128I (const __m128i &value)
 
template<typename T >
 M128I (const M128I< T > &other)
 
__m128i * data ()
 
const __m128i * data () const
 
template<typename T >
void load (const T *mem)
 
template<typename T >
void load_a (const T *mem)
 
template<typename T >
void load_u (const T *mem)
 
template<typename T >
M128I< IntType > & operator= (const M128I< T > &other)
 
template<typename T >
void set (T e1, T e0)
 
template<typename T >
void set (T e3, T e2, T e1, T e0)
 
template<typename T >
void set (T e7, T e6, T e5, T e4, T e3, T e2, T e1, T e0)
 
template<typename T >
void set (T e15, T e14, T e13, T e12, T e11, T e10, T e9, T e8, T e7, T e6, T e5, T e4, T e3, T e2, T e1, T e0)
 
void set0 ()
 
template<typename T >
void set1 (T n)
 
template<typename T >
void store (T *mem) const
 
template<typename T >
void store_a (T *mem) const
 
template<typename T >
void store_u (T *mem) const
 
__m128i & value ()
 
const __m128i & value () const
 

Static Public Member Functions

static constexpr std::size_t size ()
 

Detailed Description

template<typename IntType = __m128i>
class vsmc::M128I< IntType >

Using __m128i as integer vector.

Definition at line 113 of file simd.hpp.

Member Typedef Documentation

template<typename IntType = __m128i>
using vsmc::M128I< IntType >::value_type = IntType

Definition at line 116 of file simd.hpp.

Constructor & Destructor Documentation

template<typename IntType = __m128i>
vsmc::M128I< IntType >::M128I ( )
default
template<typename IntType = __m128i>
vsmc::M128I< IntType >::M128I ( const __m128i &  value)
inline

Definition at line 120 of file simd.hpp.

template<typename IntType = __m128i>
template<typename T >
vsmc::M128I< IntType >::M128I ( const M128I< T > &  other)
inline

Definition at line 123 of file simd.hpp.

Member Function Documentation

template<typename IntType = __m128i>
__m128i* vsmc::M128I< IntType >::data ( )
inline

Definition at line 143 of file simd.hpp.

template<typename IntType = __m128i>
const __m128i* vsmc::M128I< IntType >::data ( ) const
inline

Definition at line 144 of file simd.hpp.

template<typename IntType = __m128i>
template<typename T >
void vsmc::M128I< IntType >::load ( const T *  mem)
inline

Definition at line 159 of file simd.hpp.

template<typename IntType = __m128i>
template<typename T >
void vsmc::M128I< IntType >::load_a ( const T *  mem)
inline

Definition at line 147 of file simd.hpp.

template<typename IntType = __m128i>
template<typename T >
void vsmc::M128I< IntType >::load_u ( const T *  mem)
inline

Definition at line 153 of file simd.hpp.

template<typename IntType = __m128i>
template<typename T >
M128I<IntType>& vsmc::M128I< IntType >::operator= ( const M128I< T > &  other)
inline

Definition at line 128 of file simd.hpp.

template<typename IntType = __m128i>
template<typename T >
void vsmc::M128I< IntType >::set ( e1,
e0 
)
inline

Definition at line 193 of file simd.hpp.

template<typename IntType = __m128i>
template<typename T >
void vsmc::M128I< IntType >::set ( e3,
e2,
e1,
e0 
)
inline

Definition at line 200 of file simd.hpp.

template<typename IntType = __m128i>
template<typename T >
void vsmc::M128I< IntType >::set ( e7,
e6,
e5,
e4,
e3,
e2,
e1,
e0 
)
inline

Definition at line 207 of file simd.hpp.

template<typename IntType = __m128i>
template<typename T >
void vsmc::M128I< IntType >::set ( e15,
e14,
e13,
e12,
e11,
e10,
e9,
e8,
e7,
e6,
e5,
e4,
e3,
e2,
e1,
e0 
)
inline

Definition at line 216 of file simd.hpp.

template<typename IntType = __m128i>
void vsmc::M128I< IntType >::set0 ( )
inline

Definition at line 184 of file simd.hpp.

template<typename IntType = __m128i>
template<typename T >
void vsmc::M128I< IntType >::set1 ( n)
inline

Definition at line 187 of file simd.hpp.

template<typename IntType = __m128i>
static constexpr std::size_t vsmc::M128I< IntType >::size ( )
inlinestatic

Definition at line 135 of file simd.hpp.

template<typename IntType = __m128i>
template<typename T >
void vsmc::M128I< IntType >::store ( T *  mem) const
inline

Definition at line 178 of file simd.hpp.

template<typename IntType = __m128i>
template<typename T >
void vsmc::M128I< IntType >::store_a ( T *  mem) const
inline

Definition at line 166 of file simd.hpp.

template<typename IntType = __m128i>
template<typename T >
void vsmc::M128I< IntType >::store_u ( T *  mem) const
inline

Definition at line 172 of file simd.hpp.

template<typename IntType = __m128i>
__m128i& vsmc::M128I< IntType >::value ( )
inline

Definition at line 140 of file simd.hpp.

template<typename IntType = __m128i>
const __m128i& vsmc::M128I< IntType >::value ( ) const
inline

Definition at line 141 of file simd.hpp.