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

ベクトルマスク操作の組込み関数

インテル® アドバンスト・ベクトル・エクステンション 512 (インテル® AVX-512) 組込み関数のプロトタイプは、zmmintrin.h ヘッダーファイルで定義されていますが、実際にヘッダーをコードにインクルードする場合は、immintrin.h を使用します。


組込み関数名

演算

対応するインテル® AVX-512 命令

_mm512_kand

ビット単位の AND (論理積) マスク

KANDW

_mm512_kandn

ビット単位の AND NOT (否定論理積) マスク

KANDNW

_mm512_kmov

マスクレジスターへ/マスクレジスターからの移動

KMOVW

_mm512_kunpackb

マスクレジスターのアンパック

KUNPCKBW

_mm512_knot

ビット単位の NOT (論理否定) マスク

KNOTW

_mm512_kor

ビット単位の OR (論理和) マスク

KORW

_mm512_kortestc

_mm512_kortestz

ビット単位の OR (論理和) マスクとフラグ設定

KORTESTW

_mm512_kxnor

ビット単位の XNOR (否定排他的論理和) マスク

KXNORW

_mm512_kxor

ビット単位の XOR (排他的論理和) マスク

KXORW


変数 定義
k

セレクターとして使用される書き込みマスク

a

1 つ目のソースベクトルの要素

b

2 つ目のソースベクトルの要素


_mm512_kand

extern __mmask16 __cdecl _mm512_kand(__mmask16 a, __mmask16 b);

16 ビットのマスク ab のビット単位の AND (論理積) を計算し、結果を k に格納します。



_mm512_kandn

extern __mmask16 __cdecl _mm512_kandn(__mmask16 a, __mmask16 b);

16 ビットのマスク ab のビット単位の AND NOT (否定論理積) を計算し、結果を k に格納します。



_mm512_knot

extern __mmask16 __cdecl _mm512_knot(__mmask16 a);

16 ビットのマスク a のビット単位の NOT (論理否定) を計算し、結果を k に格納します。



_mm512_kor

extern __mmask16 __cdecl _mm512_kor(__mmask16 a, __mmask16 b);

16 ビットのマスク ab のビット単位の OR (論理和) を計算し、結果を k に格納します。



_mm512_kxnor

extern __mmask16 __cdecl _mm512_kxnor(__mmask16 a, __mmask16 b);

16 ビットのマスク ab のビット単位の XNOR (否定排他的論理和) を計算し、結果を k に格納します。



_mm512_kxor

extern __mmask16 __cdecl _mm512_kxor(__mmask16 a, __mmask16 b);

16 ビットのマスク ab のビット単位の XOR (排他的論理和) を計算し、結果を k に格納します。



_mm512_kmov

extern __mmask16 __cdecl _mm512_kmov(__mmask16 a);

16 ビットのマスク ak にコピーします。



_mm512_kunpackb

extern __mmask16 __cdecl _mm512_kunpackb(__mmask16 a, __mmask16 b);

16 ビットのマスク ab の 8 ビットをアンパックして、インターリーブし、16 ビットの結果をマスクレジスターに格納します。