インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス

レジスター挿入/抽出組込み関数

これらのインテル® ストリーミング SIMD 拡張命令 4 (インテル® SSE4) 組込み関数では、汎用レジスターと XMM レジスターとの間でデータの挿入と抽出を行うことができます。これらの組込み関数のプロトタイプは、smmintrin.h ファイル内にあります。

* が付いている組込み関数は、インテル® 64 アーキテクチャーのみに実装されます。残りの組込み関数は、IA-32 アーキテクチャーおよびインテル® 64 アーキテクチャーの両方に実装されます。

組込み関数の構文

演算

対応するインテル® SSE4 命令

__m128 _mm_insert_ps(__m128 dst, __m128 src, const int ndx)

単精度浮動小数をインデックスによって選択されたパックド単精度配列要素に挿入します。

INSERTPS

int _mm_extract_ps(__m128 src, const int ndx)

単精度浮動小数をインデックスによって選択されたパックド単精度配列要素から抽出します。

EXTRACTPS

__m128i _mm_insert_epi8(__m128i s1, int s2, const int ndx)

整数バイトをインデックスによって選択されたパックド整数配列要素に挿入します。

PINSRB

int _mm_extract_epi8(__m128i src, const int ndx)

整数バイトをインデックスによって選択されたパックド整数配列要素から抽出します。

PEXTRB

int _mm_extract_epi16(__m128i src, int ndx)

整数ワードをインデックスによって選択されたパックド整数配列要素から抽出します。

PEXTRW

__m128i _mm_insert_epi32(__m128i s1, int s2, const int ndx)

整数ダブルワードをインデックスによって選択されたパックド整数配列要素に挿入します。

PINSRD

int _mm_extract_epi32(__m128i src, const int ndx)

整数ダブルワードをインデックスによって選択されたパックド整数配列要素から抽出します。

PEXTRD

__m128i _mm_insert_epi64(__m128i s2, int s, const int ndx)*

整数クワッドワードをインデックスによって選択されたパックド整数配列要素に挿入します。インテル® 64 アーキテクチャーのみで使用します。

PINSRQ

__int64 _mm_extract_epi64(__m128i src, const int ndx)*

整数クワッドワードをインデックスによって選択されたパックド整数配列要素から抽出します。インテル® 64 アーキテクチャーのみで使用します。

PEXTRQ