Tensorium
Loading...
Searching...
No Matches
simd::SimdTraits< double, sse_t > Struct Reference

#include <SIMD.hpp>

Collaboration diagram for simd::SimdTraits< double, sse_t >:

Public Types

using reg = __m128d
 
using reg_aligned = aligned_reg<reg, alignment>
 

Static Public Member Functions

static reg set1 (double x)
 
static reg set (double a, double b)
 
static double extract (reg x, size_t index)
 
static void stream (double *ptr, reg x)
 
static reg setzero ()
 
static double horizontal_add (reg v)
 
static void maskstore (double *ptr, __m128i mask, __m128d value)
 
static reg load (const double *ptr)
 
static reg loadu (const double *ptr)
 
static void store (double *ptr, reg x)
 
static void storeu (double *ptr, reg x)
 
static reg zero ()
 
static reg fmadd (reg a, reg b, reg c)
 
static reg add (reg a, reg b)
 
static reg mul (reg a, reg b)
 
static reg sub (reg a, reg b)
 
static reg andnot (reg a, reg b)
 
static void store_stream (double *ptr, reg x)
 
static reg max (reg a, reg b)
 
static reg min (reg a, reg b)
 

Static Public Attributes

static constexpr size_t alignment = 16
 
static constexpr size_t width = 2
 

Member Typedef Documentation

◆ reg

using simd::SimdTraits< double, sse_t >::reg = __m128d

◆ reg_aligned

using simd::SimdTraits< double, sse_t >::reg_aligned = aligned_reg<reg, alignment>

Member Function Documentation

◆ add()

static reg simd::SimdTraits< double, sse_t >::add ( reg a,
reg b )
inlinestatic

◆ andnot()

static reg simd::SimdTraits< double, sse_t >::andnot ( reg a,
reg b )
inlinestatic

◆ extract()

static double simd::SimdTraits< double, sse_t >::extract ( reg x,
size_t index )
inlinestatic

◆ fmadd()

static reg simd::SimdTraits< double, sse_t >::fmadd ( reg a,
reg b,
reg c )
inlinestatic

◆ horizontal_add()

static double simd::SimdTraits< double, sse_t >::horizontal_add ( reg v)
inlinestatic

◆ load()

static reg simd::SimdTraits< double, sse_t >::load ( const double * ptr)
inlinestatic

◆ loadu()

static reg simd::SimdTraits< double, sse_t >::loadu ( const double * ptr)
inlinestatic

◆ maskstore()

static void simd::SimdTraits< double, sse_t >::maskstore ( double * ptr,
__m128i mask,
__m128d value )
inlinestatic

◆ max()

static reg simd::SimdTraits< double, sse_t >::max ( reg a,
reg b )
inlinestatic

◆ min()

static reg simd::SimdTraits< double, sse_t >::min ( reg a,
reg b )
inlinestatic

◆ mul()

static reg simd::SimdTraits< double, sse_t >::mul ( reg a,
reg b )
inlinestatic

◆ set()

static reg simd::SimdTraits< double, sse_t >::set ( double a,
double b )
inlinestatic

◆ set1()

static reg simd::SimdTraits< double, sse_t >::set1 ( double x)
inlinestatic

◆ setzero()

static reg simd::SimdTraits< double, sse_t >::setzero ( )
inlinestatic

◆ store()

static void simd::SimdTraits< double, sse_t >::store ( double * ptr,
reg x )
inlinestatic

◆ store_stream()

static void simd::SimdTraits< double, sse_t >::store_stream ( double * ptr,
reg x )
inlinestatic

◆ storeu()

static void simd::SimdTraits< double, sse_t >::storeu ( double * ptr,
reg x )
inlinestatic

◆ stream()

static void simd::SimdTraits< double, sse_t >::stream ( double * ptr,
reg x )
inlinestatic

◆ sub()

static reg simd::SimdTraits< double, sse_t >::sub ( reg a,
reg b )
inlinestatic

◆ zero()

static reg simd::SimdTraits< double, sse_t >::zero ( )
inlinestatic

Member Data Documentation

◆ alignment

constexpr size_t simd::SimdTraits< double, sse_t >::alignment = 16
staticconstexpr

◆ width

constexpr size_t simd::SimdTraits< double, sse_t >::width = 2
staticconstexpr

The documentation for this struct was generated from the following file: