インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス
次の機能を使用する場合は、ヘッダーファイル fvec.h をインクルードする必要があります。
A と B に含まれているそれぞれの符号付き整数ワードの中で、要素単位で見たときの最大値を計算します。
Is16vec4 simd_max(Is16vec4 A, Is16vec4 B);
対応する組込み関数: _mm_max_pi16
A と B に含まれているそれぞれの符号付き整数ワードの中で、要素単位で見たときの最小値を計算します。
Is16vec4 simd_min(Is16vec4 A, Is16vec4 B);
対応する組込み関数: _mm_min_pi16
A と B に含まれているそれぞれの符号なしバイトの中で、要素単位で見たときの最大値を計算します。
Iu8vec8 simd_max(Iu8vec8 A, Iu8vec8 B);
対応する組込み関数: _mm_max_pu8
A と B に含まれているそれぞれの符号なしバイトの中で、要素単位で見たときの最小値を計算します。
Iu8vec8 simd_min(Iu8vec8 A, Iu8vec8 B);
対応する組込み関数: _mm_min_pu8
A に含まれているすべてのバイトの最上位ビットから 8 ビット・マスクを 1 つ作成します。
int move_mask(I8vec8 A);
対応する組込み関数: _mm_movemask_pi8
条件に従って、A のバイト要素をいくつかアドレス p にストアします。セレクター B の各バイトの上位ビットによって、それに対応する A の各バイトがストアされるかどうかが決まります。
void mask_move(I8vec8 A, I8vec8 B, signed char *p);
対応する組込み関数: _mm_maskmove_si64
当該キャッシュデータに影響を与えることなく、A に含まれているデータをアドレス p にストアします。A は Ivec 型であれば何でもかまいません。
void store_nta(__m64 *p, M64 A);
対応する組込み関数: _mm_stream_pi
A と B に含まれているそれぞれの符号なし 8 ビット整数すべてについて、要素単位で見たときの平均値を計算します。
Iu8vec8 simd_avg(Iu8vec8 A, Iu8vec8 B);
対応する組込み関数: _mm_avg_pu8
A と B に含まれているそれぞれの符号なし 16 ビット整数すべてについて、要素単位で見たときの平均値を計算します。
Iu16vec4 simd_avg(Iu16vec4 A, Iu16vec4 B);
対応する組込み関数: _mm_avg_pu16