libsimdpp  0.9.3
simdpp::int32x8 Class Reference

Class representing 4x 32-bit signed integer vector. More...

Inheritance diagram for simdpp::int32x8:

Public Types

typedef int32_t element_type
 
typedef int32x4 half_vector_type
 
- Public Types inherited from simdpp::basic_int32x8
typedef uint32_t element_type
 
typedef uint32_t uint_element_type
 
typedef basic_int32x8 int_vector_type
 
typedef uint32x8 uint_vector_type
 
typedef basic_int32x4 half_vector_type
 
typedef mask_int32x8 mask_type
 
- Public Types inherited from simdpp::int256
typedef uint64_t element_type
 
typedef uint64_t uint_element_type
 
typedef int256 int_vector_type
 

Public Member Functions

 int32x8 ()
 
 int32x8 (const int32x8 &d)
 
int32x8operator= (const int32x8 &d)
 
 int32x8 (int32x4 d0, int32x4 d1)
 
const int32x4operator[] (unsigned i) const
 
int32x4operator[] (unsigned i)
 
 int32x8 (const int256 &d)
 
 int32x8 (const basic_int32x8 &d)
 
int32x8operator= (int256 d)
 
int32x8operator= (basic_int32x8 d)
 
 int32x8 (const float32x8 &d)
 
int32x8operator= (const float32x8 &d)
 
- Public Member Functions inherited from simdpp::basic_int32x8
 basic_int32x8 ()
 
 basic_int32x8 (const basic_int32x8 &d)
 
basic_int32x8operator= (const basic_int32x8 &d)
 
 basic_int32x8 (basic_int32x4 d0, basic_int32x4 d1)
 
const basic_int32x4operator[] (unsigned i) const
 
basic_int32x4operator[] (unsigned i)
 
 basic_int32x8 (const int256 &d)
 
basic_int32x8operator= (int256 d)
 
 basic_int32x8 (const float32x8 &d)
 
basic_int32x8operator= (const float32x8 &d)
 
- Public Member Functions inherited from simdpp::int256
 int256 ()
 
 int256 (const int256 &d)
 
int256operator= (const int256 &d)
 
 int256 (int128 d0, int128 d1)
 
const int128operator[] (unsigned i) const
 
int128operator[] (unsigned i)
 

Static Public Member Functions

static int32x8 zero ()
 Creates a signed int32x8 vector with the contents set to zero. More...
 
static int32x8 load_broadcast (const int32_t *v0)
 Creates a signed int32x8 vector from a value loaded from memory. More...
 
static int32x8 set_broadcast (int32_t v0)
 Creates a signed int32x8 vector from a value stored in a core register. More...
 
static int32x8 make_const (int32_t v0)
 Creates a signed int32x8 vector from a value known at compile-time. More...
 
static int32x8 make_const (int32_t v0, int32_t v1)
 Creates a signed int32x8 vector from two values known at compile-time. More...
 
static int32x8 make_const (int32_t v0, int32_t v1, int32_t v2, int32_t v3)
 Creates a signed int32x8 vector from four values known at compile-time. More...
 
static int32x8 make_const (int32_t v0, int32_t v1, int32_t v2, int32_t v3, int32_t v4, int32_t v5, int32_t v6, int32_t v7)
 Creates an signed int32x8 vector from eight values known at compile-time. More...
 

Additional Inherited Members

- Static Public Attributes inherited from simdpp::basic_int32x8
static const unsigned length = 8
 
static const unsigned num_bits = 32
 
static const uint_element_type all_bits = 0xffffffff
 
- Protected Member Functions inherited from simdpp::int256
const uint64x2u64 (unsigned i) const
 
uint64x2u64 (unsigned i)
 
const uint32x4u32 (unsigned i) const
 
uint32x4u32 (unsigned i)
 
const uint16x8u16 (unsigned i) const
 
uint16x8u16 (unsigned i)
 
const uint8x16u8 (unsigned i) const
 
uint8x16u8 (unsigned i)
 
const int64x2i64 (unsigned i) const
 
int64x2i64 (unsigned i)
 
const int32x4i32 (unsigned i) const
 
int32x4i32 (unsigned i)
 
const int16x8i16 (unsigned i) const
 
int16x8i16 (unsigned i)
 
const int8x16i8 (unsigned i) const
 
int8x16i8 (unsigned i)
 

Detailed Description

Class representing 4x 32-bit signed integer vector.

Member Typedef Documentation

Constructor & Destructor Documentation

simdpp::int32x8::int32x8 ( )
inline
simdpp::int32x8::int32x8 ( const int32x8 d)
inline
simdpp::int32x8::int32x8 ( const int256 d)
inline

Construct from the underlying vector type Construct from the base type

simdpp::int32x8::int32x8 ( const basic_int32x8 d)
inline

Construct from the underlying vector type Construct from the base type

simdpp::int32x8::int32x8 ( const float32x8 d)
inlineexplicit

Construct from compatible float32x8 integer vector type

simdpp::int32x8::int32x8 ( int32x4  d0,
int32x4  d1 
)
inline

Member Function Documentation

static int32x8 simdpp::int32x8::load_broadcast ( const int32_t *  v0)
static

Creates a signed int32x8 vector from a value loaded from memory.

| 0 1 2 3 |
r = [ v0 v0 v0 v0 ]
  • In SSE2-SSE4.1 this intrinsic results in at least 2 instructions.
  • In NEON this intrinsic results in at least 1 instructions.
static int32x8 simdpp::int32x8::make_const ( int32_t  v0)
static

Creates a signed int32x8 vector from a value known at compile-time.

| 0 1 2 3 |
r = [ v0 v0 v0 v0 ]
static int32x8 simdpp::int32x8::make_const ( int32_t  v0,
int32_t  v1 
)
static

Creates a signed int32x8 vector from two values known at compile-time.

| 0 1 2 3 |
r = [ v0 v1 v0 v1 ]
static int32x8 simdpp::int32x8::make_const ( int32_t  v0,
int32_t  v1,
int32_t  v2,
int32_t  v3 
)
static

Creates a signed int32x8 vector from four values known at compile-time.

| 0 1 2 3 |
r = [ v0 v1 v2 v3 ]
static int32x8 simdpp::int32x8::make_const ( int32_t  v0,
int32_t  v1,
int32_t  v2,
int32_t  v3,
int32_t  v4,
int32_t  v5,
int32_t  v6,
int32_t  v7 
)
static

Creates an signed int32x8 vector from eight values known at compile-time.

| 0 1 ... 7 |
r = [ v0 v1 ... v7 ]
int32x8& simdpp::int32x8::operator= ( const int32x8 d)
inline
int32x8& simdpp::int32x8::operator= ( int256  d)
inline

Construct from the underlying vector type Construct from the base type

int32x8& simdpp::int32x8::operator= ( basic_int32x8  d)
inline

Construct from the underlying vector type Construct from the base type

int32x8& simdpp::int32x8::operator= ( const float32x8 d)
inline

Construct from compatible float32x8 integer vector type

const int32x4& simdpp::int32x8::operator[] ( unsigned  i) const
inline
int32x4& simdpp::int32x8::operator[] ( unsigned  i)
inline
static int32x8 simdpp::int32x8::set_broadcast ( int32_t  v0)
static

Creates a signed int32x8 vector from a value stored in a core register.

| 0 1 2 3 |
r = [ v0 v0 v0 v0 ]
  • In SSE2-SSE4.1 and NEON this intrinsic results in at least 2 instructions.
static int32x8 simdpp::int32x8::zero ( )
static

Creates a signed int32x8 vector with the contents set to zero.

r0 = 0
r1 = 0
r2 = 0
r3 = 0

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