Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
Arcane::AVXSimdX8Real Class Reference

Vectorization of real numbers using AVX with blocks of 8 reals. More...

#include <arcane/utils/SimdAVX.h>

Collaboration diagram for Arcane::AVXSimdX8Real:

Public Types

enum  { Length = 8 }

Public Member Functions

 AVXSimdX8Real (__m256d _v0, __m256d _v1)
 AVXSimdX8Real (Real r)
 AVXSimdX8Real (const Real *base, const Int32 *idx)
 AVXSimdX8Real (const Real *base)
 Loads contiguous values located at address base, which must be aligned.
Real operator[] (Integer i) const
Realoperator[] (Integer i)
void set (ARCANE_RESTRICT Real *base, const ARCANE_RESTRICT Int32 *idx) const
void set (ARCANE_RESTRICT Real *base) const
 Stores the instance values at address base, which must be aligned.
AVXSimdX8Real operator- () const

Static Public Member Functions

static AVXSimdX8Real fromScalar (Real a0, Real a1, Real a2, Real a3, Real a4, Real a5, Real a6, Real a7)

Public Attributes

__m256d v0
__m256d v1

Static Public Attributes

static const int BLOCK_SIZE = 8

Private Member Functions

 AVXSimdX8Real (Real a7, Real a6, Real a5, Real a4, Real a3, Real a2, Real a1, Real a0)
void operator= (Real _v)

Detailed Description

Vectorization of real numbers using AVX with blocks of 8 reals.

Note
This class must be aligned to 32 bytes.

Definition at line 245 of file SimdAVX.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum

Definition at line 250 of file SimdAVX.h.

Constructor & Destructor Documentation

◆ AVXSimdX8Real() [1/6]

Arcane::AVXSimdX8Real::AVXSimdX8Real ( )
inline

Definition at line 259 of file SimdAVX.h.

◆ AVXSimdX8Real() [2/6]

Arcane::AVXSimdX8Real::AVXSimdX8Real ( __m256d _v0,
__m256d _v1 )
inline

Definition at line 260 of file SimdAVX.h.

◆ AVXSimdX8Real() [3/6]

Arcane::AVXSimdX8Real::AVXSimdX8Real ( Real r)
inlineexplicit

Definition at line 264 of file SimdAVX.h.

◆ AVXSimdX8Real() [4/6]

Arcane::AVXSimdX8Real::AVXSimdX8Real ( Real a7,
Real a6,
Real a5,
Real a4,
Real a3,
Real a2,
Real a1,
Real a0 )
inlineprivate

Definition at line 272 of file SimdAVX.h.

◆ AVXSimdX8Real() [5/6]

Arcane::AVXSimdX8Real::AVXSimdX8Real ( const Real * base,
const Int32 * idx )
inline

Definition at line 280 of file SimdAVX.h.

◆ AVXSimdX8Real() [6/6]

Arcane::AVXSimdX8Real::AVXSimdX8Real ( const Real * base)
inlineexplicit

Loads contiguous values located at address base, which must be aligned.

Definition at line 297 of file SimdAVX.h.

Member Function Documentation

◆ fromScalar()

AVXSimdX8Real Arcane::AVXSimdX8Real::fromScalar ( Real a0,
Real a1,
Real a2,
Real a3,
Real a4,
Real a5,
Real a6,
Real a7 )
inlinestatic

Definition at line 335 of file SimdAVX.h.

◆ operator-()

AVXSimdX8Real Arcane::AVXSimdX8Real::operator- ( ) const
inline

Definition at line 342 of file SimdAVX.h.

◆ operator[]() [1/2]

Real & Arcane::AVXSimdX8Real::operator[] ( Integer i)
inline

Definition at line 304 of file SimdAVX.h.

◆ operator[]() [2/2]

Real Arcane::AVXSimdX8Real::operator[] ( Integer i) const
inline

Definition at line 303 of file SimdAVX.h.

◆ set() [1/2]

void Arcane::AVXSimdX8Real::set ( ARCANE_RESTRICT Real * base) const
inline

Stores the instance values at address base, which must be aligned.

Definition at line 329 of file SimdAVX.h.

◆ set() [2/2]

void Arcane::AVXSimdX8Real::set ( ARCANE_RESTRICT Real * base,
const ARCANE_RESTRICT Int32 * idx ) const
inline

Definition at line 306 of file SimdAVX.h.

Member Data Documentation

◆ BLOCK_SIZE

const int Arcane::AVXSimdX8Real::BLOCK_SIZE = 8
static

Definition at line 249 of file SimdAVX.h.

◆ v0

__m256d Arcane::AVXSimdX8Real::v0

Definition at line 257 of file SimdAVX.h.

◆ v1

__m256d Arcane::AVXSimdX8Real::v1

Definition at line 258 of file SimdAVX.h.


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