ストリーミングSIMD拡張命令2 のその他の操作

ストリーミングSIMD拡張命令2の組込み関数のプロトタイプは、ヘッダ・ファイルemmintrin.h内にあります。

__m128d _mm_unpackhi_pd(__m128d a, __m128d b)

(UNPCKHPD を使用)ab の上位の倍精度浮動小数点値をインターリーブ(交互に配置)します。

r0 := a1
r1 := b1

__m128d _mm_unpacklo_pd(__m128d a, __m128d b)

(UNPCKLPD を使用)ab の下位の倍精度浮動小数点値をインターリーブします。

r0 := a0
1 := b0

int _mm_movemask_pd(__m128d a)

(MOVMSKPD を使用)a の2個の倍精度浮動小数点値の符号ビットから、2ビットマスクを作成します。

r := sign(a1) << 1 | sign(a0)

__m128d _mm_shuffle_pd(__m128d a, __m128d b, int i)

(SHUFPD を使用)マスク i に基づいて、ab から2個の倍精度浮動小数点値を選択します。マスクは即値でなければなりません。シャッフルのセマンティクスについては、「シャッフルを行うマクロ関数」を参照してください。