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

混合操作の組込み関数

インテル® アドバンスト・ベクトル・エクステンション 512 (インテル® AVX-512) 組込み関数のプロトタイプは、zmmintrin.h ヘッダーファイルで定義されていますが、実際にヘッダーをコードにインクルードする場合は、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 ソースベクトル ab の要素単位のブレンド (混合) を行います。

結果は float64 ベクトルレジスターに書き込まれます。



_mm512_mask_blend_ps

 extern m512 __cdecl _mm512_mask_blend_ps(__mmask16 k, __m512 a, __m512 b);

セレクターとして命令マスク k を使用し、float32 ソースベクトル ab の要素単位のブレンド (混合) を行います。

結果は float32 ベクトルレジスターに書き込まれます。



_mm512_mask_blend_epi32

extern m512i __cdecl _mm512_mask_blend_epi32(__mmask16 k, __m512i a, __m512i b);

セレクターとして命令マスク k を使用し、int32 ソースベクトル ab の要素単位のブレンド (混合) を行います。

結果は int32 ベクトルレジスターに書き込まれます。



_mm512_mask_blend_epi64

extern m512i __cdecl _mm512_mask_blend_epi64(__mmask8 k, __m512i a, __m512i b);

セレクターとして命令マスク k を使用し、int64 ソースベクトル ab の要素単位のブレンド (混合) を行います。

結果は int64 ベクトルレジスターに書き込まれます。