インテル® C++ コンパイラー 19.0 デベロッパー・ガイドおよびリファレンス
インテル® アドバンスト・ベクトル・エクステンション 512 (インテル® AVX-512) 組込み関数のプロトタイプは、zmmintrin.h ヘッダーファイルで定義されていますが、これらの組込み関数を使用する場合、次のように immintrin.h ファイルをインクルードします。
#include <immintrin.h>
これらの関数では、opmask レジスターは書き込みマスクとして使用されません。代わりに、マスクは要素セレクターとして使用されます。マスクの対応するビットの値 (1 つ目のソースオペランドの場合は '0'、2 つ目のソースオペランドの場合は '1') に応じて、デスティネーションの各要素が 1 つ目のソースと 2 つ目のソースから条件付きで選択されます。デスティネーション・オペランドでマスクの対応するビットの値が '0' に設定されている要素については、0 に設定されます。
組込み関数名 |
演算 |
対応するインテル® AVX-512 命令 |
---|---|---|
_mm512_mask_blend_pd |
命令マスクを使用して float64 ベクトル要素をブレンド (混合) します。 |
VBLENDMPD |
_mm512_mask_blend_ps |
命令マスクを使用して float32 ベクトル要素をブレンド (混合) します。 |
VBLENDMPS |
_mm512_mask_blend_epi32 |
命令マスクを使用して int32 ベクトルをブレンド (混合) します。 |
VPBLENDMD |
_mm512_mask_blend_epi64 |
命令マスクを使用して int64 ベクトルをブレンド (混合) します。 |
VPBLENDMQ |
変数 | 定義 |
---|---|
k | セレクターとして使用される命令マスク |
a | 1 つ目のソースベクトルの要素 |
b | 2 つ目のソースベクトルの要素 |
_mm512_mask_blend_pd
extern m512d __cdecl _mm512_mask_blend_pd(__mmask8 k, __m512d a, __m512d b);
セレクターとして命令マスク k を使用し、float64 ソースベクトル a と b の要素単位のブレンド (混合) を行います。
結果は float64 ベクトルレジスターに書き込まれます。
_mm512_mask_blend_ps
extern m512 __cdecl _mm512_mask_blend_ps(__mmask16 k, __m512 a, __m512 b);
セレクターとして命令マスク k を使用し、float32 ソースベクトル a と b の要素単位のブレンド (混合) を行います。
結果は float32 ベクトルレジスターに書き込まれます。
_mm512_mask_blend_epi32
extern m512i __cdecl _mm512_mask_blend_epi32(__mmask16 k, __m512i a, __m512i b);
セレクターとして命令マスク k を使用し、int32 ソースベクトル a と b の要素単位のブレンド (混合) を行います。
結果は int32 ベクトルレジスターに書き込まれます。
_mm512_mask_blend_epi64
extern m512i __cdecl _mm512_mask_blend_epi64(__mmask8 k, __m512i a, __m512i b);
セレクターとして命令マスク k を使用し、int64 ソースベクトル a と b の要素単位のブレンド (混合) を行います。
結果は int64 ベクトルレジスターに書き込まれます。