nlib
SimdInt.h ファイル

整数のSIMD演算を行うためのクラスや関数が実装されています。 [詳解]

#include "nn/nlib/Config.h"

[ソースコード]

クラス

struct  nn::nlib::simd::each_int8_tag
 空の構造体で8bitの符号付き整数を示すためのタグです。 [詳解]
 
struct  nn::nlib::simd::each_int16_tag
 空の構造体で16bitの符号付き整数を示すためのタグです。 [詳解]
 
struct  nn::nlib::simd::each_int32_tag
 空の構造体で32bitの符号付き整数を示すためのタグです。 [詳解]
 
struct  nn::nlib::simd::each_int64_tag
 空の構造体で64bitの符号付き整数を示すためのタグです。 [詳解]
 
struct  nn::nlib::simd::each_uint8_tag
 空の構造体で8bitの符号なし整数を示すためのタグです。 [詳解]
 
struct  nn::nlib::simd::each_uint16_tag
 空の構造体で16bitの符号なし整数を示すためのタグです。 [詳解]
 
struct  nn::nlib::simd::each_uint32_tag
 空の構造体で32bitの符号なし整数を示すためのタグです。 [詳解]
 
struct  nn::nlib::simd::each_uint64_tag
 空の構造体で64bitの符号なし整数を示すためのタグです。 [詳解]
 
struct  nn::nlib::simd::each_select32_tag
 空の構造体で32bit単位に分けたレーンを選択することを示すためのタグです。 [詳解]
 
struct  nn::nlib::simd::each_select16_tag
 空の構造体で16bit単位に分けたレーンを選択することを示すためのタグです。 [詳解]
 
struct  nn::nlib::simd::each_select8_tag
 空の構造体で8bit単位に分けたレーンを選択することを示すためのタグです。 [詳解]
 
class  nn::nlib::simd::I64
 64bit幅での I128 と同様の整数SIMD演算を行うためのクラスです。 [詳解]
 
class  nn::nlib::simd::I128
 128bitレジスタ(SSEではXMM0-XMM15, NEONではQ0-Q15)を用いた整数SIMD演算を行うためのクラスです。 [詳解]
 

名前空間

 nn::nlib
 共通して使われる機能やプラットフォームへの依存度が高い機能が実装されます。 nlib Platform APIs も御覧ください。nlib_nsはエイリアスです。
 
 nn::nlib::simd
 整数、単精度浮動小数点数のSIMD演算を行うためのクラスや関数が実装されています。
 

マクロ定義

#define NLIB_I128_TRANSPOSE32(row0, row1, row2, row3)
 4つの128bitレジスタを32bitの4x4行列とした場合に、転置行列を求めます。
 

型定義

typedef __m128i nlib_i64_t
 64bitの整数用SIMDレジスタのための型です。 [詳解]
 
typedef __m128i nlib_i128_t
 128bitの整数用SIMDレジスタのための型です。 [詳解]
 
typedef nlib_i64_t nn::nlib::simd::i64
 nlib_i64_ttypedefされています。
 
typedef nlib_i128_t nn::nlib::simd::i128
 nlib_i128_ttypedefされています。
 

変数

int nlib_sse42_supported
 x86系アーキテクチャにおいて、SSE4.2がサポートされている場合に0以外の値が設定されます。
 
タグ定数
constexpr const each_int8_tag nn::nlib::simd::each_int8 = {}
 each_int8_tag型の定数オブジェクトで、8bitの符号付き整数を示すためのタグです。
 
constexpr const each_int16_tag nn::nlib::simd::each_int16 = {}
 each_int16_tag型の定数オブジェクトで、16bitの符号付き整数を示すためのタグです。
 
constexpr const each_int32_tag nn::nlib::simd::each_int32 = {}
 each_int32_tag型の定数オブジェクトで、32bitの符号付き整数を示すためのタグです。
 
constexpr const each_int64_tag nn::nlib::simd::each_int64 = {}
 each_int64_tag型の定数オブジェクトで、64bitの符号付き整数を示すためのタグです。
 
constexpr const each_uint8_tag nn::nlib::simd::each_uint8 = {}
 each_uint8_tag型の定数オブジェクトで、8bitの符号なし整数を示すためのタグです。
 
constexpr const each_uint16_tag nn::nlib::simd::each_uint16 = {}
 each_uint16_tag型の定数オブジェクトで、16bitの符号なし整数を示すためのタグです。
 
constexpr const each_uint32_tag nn::nlib::simd::each_uint32 = {}
 each_uint32_tag型の定数オブジェクトで、32bitの符号なし整数を示すためのタグです。
 
constexpr const each_uint64_tag nn::nlib::simd::each_uint64 = {}
 each_uint64_tag型の定数オブジェクトで、64bitの符号なし整数を示すためのタグです。
 
constexpr const each_select32_tag nn::nlib::simd::each_select32 = {}
 each_select32_tag型の定数オブジェクトで、32bitのレーンを選択することを示すためのタグです。
 
constexpr const each_select16_tag nn::nlib::simd::each_select16 = {}
 each_select16_tag型の定数オブジェクトで、16bitのレーンを選択することを示すためのタグです。
 
constexpr const each_select8_tag nn::nlib::simd::each_select8 = {}
 each_select8_tag型の定数オブジェクトで、8bitのレーンを選択することを示すためのタグです。
 

詳解

整数のSIMD演算を行うためのクラスや関数が実装されています。

SimdInt.h に定義があります。

型定義詳解

128bitの整数用SIMDレジスタのための型です。

説明
Platform Definition
SSE __m128iがtypedefされています
NEON int8x16_tがtypedefされています

SimdInt.h10 行目に定義があります。

64bitの整数用SIMDレジスタのための型です。

説明
Platform Definition
SSE __m128iがtypedefされています
NEON int8x8_tがtypedefされています

SimdInt.h9 行目に定義があります。