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

Vectorization of integers using SSE. More...

#include <arcane/utils/SimdSSE.h>

Collaboration diagram for Arcane::SSESimdX4Int32:

Public Types

enum  { Length = 4 , Alignment = 16 }

Public Member Functions

 SSESimdX4Int32 (__m128i _v0)
 SSESimdX4Int32 (Int32 a)
 SSESimdX4Int32 (const Int32 *base, const Int32 *idx)
 SSESimdX4Int32 (const Int32 *base)
Int32 operator[] (Integer i) const
Int32operator[] (Integer i)
void set (ARCANE_RESTRICT Int32 *base, const ARCANE_RESTRICT Int32 *idx) const
void set (ARCANE_RESTRICT Int32 *base) const

Static Public Member Functions

static SSESimdX4Int32 fromScalar (Int32 a0, Int32 a1, Int32 a2, Int32 a3)

Public Attributes

__m128i v0

Static Public Attributes

static const int BLOCK_SIZE = 4

Private Member Functions

 SSESimdX4Int32 (Int32 a3, Int32 a2, Int32 a1, Int32 a0)
void operator= (Int32 _v)

Detailed Description

Vectorization of integers using SSE.

Todo
Normally, the alignment should be set to 32 bytes, but this makes compilations on CentOS 6 between gcc 4.4 (the default on CentOS 6) and gcc 4.6+ incompatible.

Definition at line 38 of file SimdSSE.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum

Definition at line 43 of file SimdSSE.h.

Constructor & Destructor Documentation

◆ SSESimdX4Int32() [1/6]

Arcane::SSESimdX4Int32::SSESimdX4Int32 ( )
inline

Definition at line 52 of file SimdSSE.h.

◆ SSESimdX4Int32() [2/6]

Arcane::SSESimdX4Int32::SSESimdX4Int32 ( __m128i _v0)
inline

Definition at line 53 of file SimdSSE.h.

◆ SSESimdX4Int32() [3/6]

Arcane::SSESimdX4Int32::SSESimdX4Int32 ( Int32 a)
inlineexplicit

Definition at line 56 of file SimdSSE.h.

◆ SSESimdX4Int32() [4/6]

Arcane::SSESimdX4Int32::SSESimdX4Int32 ( Int32 a3,
Int32 a2,
Int32 a1,
Int32 a0 )
inlineprivate

Definition at line 62 of file SimdSSE.h.

◆ SSESimdX4Int32() [5/6]

Arcane::SSESimdX4Int32::SSESimdX4Int32 ( const Int32 * base,
const Int32 * idx )
inline

Definition at line 68 of file SimdSSE.h.

◆ SSESimdX4Int32() [6/6]

Arcane::SSESimdX4Int32::SSESimdX4Int32 ( const Int32 * base)
inlineexplicit

Definition at line 72 of file SimdSSE.h.

Member Function Documentation

◆ fromScalar()

SSESimdX4Int32 Arcane::SSESimdX4Int32::fromScalar ( Int32 a0,
Int32 a1,
Int32 a2,
Int32 a3 )
inlinestatic

Definition at line 94 of file SimdSSE.h.

◆ operator[]() [1/2]

Int32 & Arcane::SSESimdX4Int32::operator[] ( Integer i)
inline

Definition at line 77 of file SimdSSE.h.

◆ operator[]() [2/2]

Int32 Arcane::SSESimdX4Int32::operator[] ( Integer i) const
inline

Definition at line 76 of file SimdSSE.h.

◆ set() [1/2]

void Arcane::SSESimdX4Int32::set ( ARCANE_RESTRICT Int32 * base) const
inline

Definition at line 88 of file SimdSSE.h.

◆ set() [2/2]

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

Definition at line 79 of file SimdSSE.h.

Member Data Documentation

◆ BLOCK_SIZE

const int Arcane::SSESimdX4Int32::BLOCK_SIZE = 4
static

Definition at line 42 of file SimdSSE.h.

◆ v0

__m128i Arcane::SSESimdX4Int32::v0

Definition at line 51 of file SimdSSE.h.


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