Documentation 6b54b78464
Loading...
Searching...
No Matches
simd Namespace Reference

Namespaces

namespace  SizeTag
 

Classes

class  Array
 A simple SIMD type relying on implicit vectorization, i.e. done by the compiler, explicitly vectorized specializations are defined after. More...
 

Functions

template<class T >
constexpr size_t preferredLen ()
 Convert the SIMD size (bytes) to a lenght (num elems).
 
template<>
constexpr size_t preferredLen< su2double > ()
 
__m128d set1_p (SizeTag::TWO, double p)
 
__m128d load_p (SizeTag::TWO, const double *p)
 
__m128d loadu_p (SizeTag::TWO, const double *p)
 
void store_p (double *p, __m128d x)
 
void storeu_p (double *p, __m128d x)
 
void stream_p (double *p, __m128d x)
 
__m128d add_p (__m128d a, __m128d b)
 
__m128d sub_p (__m128d a, __m128d b)
 
__m128d mul_p (__m128d a, __m128d b)
 
__m128d div_p (__m128d a, __m128d b)
 
__m128d max_p (__m128d a, __m128d b)
 
__m128d min_p (__m128d a, __m128d b)
 
__m128d eq_p (__m128d a, __m128d b)
 
__m128d lt_p (__m128d a, __m128d b)
 
__m128d le_p (__m128d a, __m128d b)
 
__m128d ne_p (__m128d a, __m128d b)
 
__m128d ge_p (__m128d a, __m128d b)
 
__m128d gt_p (__m128d a, __m128d b)
 
__m128d sqrt_p (__m128d x)
 
__m128d abs_p (__m128d x)
 
__m128d neg_p (__m128d x)
 
__m128d sign_p (__m128d x)
 
__m128 set1_p (SizeTag::FOUR, float p)
 
__m128 load_p (SizeTag::FOUR, const float *p)
 
__m128 loadu_p (SizeTag::FOUR, const float *p)
 
void store_p (float *p, __m128 x)
 
void storeu_p (float *p, __m128 x)
 
void stream_p (float *p, __m128 x)
 
__m128 add_p (__m128 a, __m128 b)
 
__m128 sub_p (__m128 a, __m128 b)
 
__m128 mul_p (__m128 a, __m128 b)
 
__m128 div_p (__m128 a, __m128 b)
 
__m128 max_p (__m128 a, __m128 b)
 
__m128 min_p (__m128 a, __m128 b)
 
__m128 eq_p (__m128 a, __m128 b)
 
__m128 lt_p (__m128 a, __m128 b)
 
__m128 le_p (__m128 a, __m128 b)
 
__m128 ne_p (__m128 a, __m128 b)
 
__m128 ge_p (__m128 a, __m128 b)
 
__m128 gt_p (__m128 a, __m128 b)
 
__m128 sqrt_p (__m128 x)
 
__m128 abs_p (__m128 x)
 
__m128 neg_p (__m128 x)
 
__m128 sign_p (__m128 x)
 

Variables

constexpr size_t PREFERRED_SIZE = 16
 
constexpr uint64_t abs_mask_d = 0x7FFFFFFFFFFFFFFFL
 
constexpr uint32_t abs_mask_s = 0x7FFFFFFFU
 
constexpr uint64_t sign_mask_d = 0x8000000000000000L
 
constexpr uint32_t sign_mask_s = 0x80000000U