インテル® C++ コンパイラー 19.0 デベロッパー・ガイドおよびリファレンス
ここでは、インテル® MMX® テクノロジーのシフト組込み関数について説明します。
これらの組込み関数を使用する場合、次のように immintrin.h ファイルをインクルードします。
#include <immintrin.h>
組込み関数名 |
演算 |
対応する インテル® MMX® 命令 |
---|---|---|
_mm_sll_pi16 |
論理左シフト |
PSLLW |
_mm_slli_pi16 |
論理左シフト |
PSLLWI |
_mm_sll_pi32 |
論理左シフト |
PSLLD |
_mm_slli_pi32 |
論理左シフト |
PSLLDI |
_mm_sll_pi64 |
論理左シフト |
PSLLQ |
_mm_slli_pi64 |
論理左シフト |
PSLLQI |
_mm_sra_pi16 |
算術右シフト |
PSRAW |
_mm_srai_pi16 |
算術右シフト |
PSRAWI |
_mm_sra_pi32 |
算術右シフト |
PSRAD |
_mm_srai_pi32 |
算術右シフト |
PSRADI |
_mm_srl_pi16 |
論理右シフト |
PSRLW |
_mm_srli_pi16 |
論理右シフト |
PSRLWI |
_mm_srl_pi32 |
論理右シフト |
PSRLD |
_mm_srli_pi32 |
論理右シフト |
PSRLDI |
_mm_srl_pi64 |
論理右シフト |
PSRLQ |
_mm_srli_pi64 |
論理右シフト |
PSRLQI |
__m64 _mm_sll_pi16(__m64 m, __m64 count);
m の 4 つの 16 ビット値を、count で指定した値だけ左にシフトし、下位ビットを 0 で埋めます。
__m64 _mm_slli_pi16(__m64 m, int count);
m の 4 つの 16 ビット値を、count で指定した値だけ左にシフトし、下位ビットを 0 で埋めます。パフォーマンス上の理由で、count は定数にしてください。
__m64 _mm_sll_pi32(__m64 m, __m64 count);
m の 2 つの 32 ビット値を、count で指定した値だけ左にシフトし、下位ビットを 0 で埋めます。
__m64 _mm_slli_pi32(__m64 m, int count);
m の 2 つの 32 ビット値を、count で指定した値だけ左にシフトし、下位ビットを 0 で埋めます。パフォーマンス上の理由で、count は定数にしてください。
__m64 _mm_sll_pi64(__m64 m, __m64 count);
m の 64 ビット値を、count で指定した値だけ左にシフトし、下位ビットを 0 で埋めます。
__m64 _mm_slli_pi64(__m64 m, int count);
m の 64 ビット値を、count で指定した値だけ左にシフトし、下位ビットを 0 で埋めます。パフォーマンス上の理由で、count は定数にしてください。
__m64 _mm_sra_pi16(__m64 m, __m64 count);
m の 4 つの 16 ビット値を、count で指定した値だけ右にシフトし、上位ビットを符号ビットで埋めます。
__m64 _mm_srai_pi16(__m64 m, int count);
m の 4 つの 16 ビット値を、count で指定した値だけ右にシフトし、上位ビットを符号ビットで埋めます。パフォーマンス上の理由で、count は定数にしてください。
__m64 _mm_sra_pi32(__m64 m, __m64 count);
m の 2 つの 32 ビット値を、count で指定した値だけ右にシフトし、上位ビットを符号ビットで埋めます。
__m64 _mm_srai_pi32(__m64 m, int count);
m の 2 つの 32 ビット値を、count で指定した値だけ右にシフトし、上位ビットを符号ビットで埋めます。パフォーマンス上の理由で、count は定数にしてください。
__m64 _mm_srl_pi16(__m64 m, __m64 count);
m の 4 つの 16 ビット値を、count で指定した値だけ右にシフトし、上位ビットを 0 で埋めます。
__m64 _mm_srli_pi16(__m64 m, int count);
m の 4 つの 16 ビット値を、count で指定した値だけ右にシフトし、上位ビットを 0 で埋めます。パフォーマンス上の理由で、count は定数にしてください。
__m64 _mm_srl_pi32(__m64 m, __m64 count);
m の 2 つの 32 ビット値を、count で指定した値だけ右にシフトし、上位ビットを 0 で埋めます。
__m64 _mm_srli_pi32(__m64 m, int count);
m の 2 つの 32 ビット値を、count で指定した値だけ右にシフトし、上位ビットを 0 で埋めます。パフォーマンス上の理由で、count は定数にしてください。
__m64 _mm_srl_pi64(__m64 m, __m64 count);
m の 64 ビット値を、count で指定した値だけ右にシフトし、上位ビットを 0 で埋めます。
__m64 _mm_srli_pi64(__m64 m, int count);
m の 64 ビット値を、count で指定した値だけ右にシフトし、上位ビットを 0 で埋めます。パフォーマンス上の理由で、count は定数にしてください。