インテル® C++ コンパイラー 19.0 デベロッパー・ガイドおよびリファレンス
2 つの整数ベクトルのパックド・ビット・テストを実行して、ZF フラグと CF フラグを設定します。対応するインテル® AVX 命令は VPTEST です。
extern int _mm256_testnzc_si256(__m256i s1, __m256i s2); |
s1 |
1 つ目の整数ソースベクトル |
s2 |
2 つ目の整数ソースベクトル |
VTESTPDs1、s2 命令を使用して、s1 ベクトルと s2 ベクトルのパックド・ビット・テストを実行し、ZF フラグと CF フラグのステータスを確認します。この組込み関数は、ZF フラグと CF フラグが両方とも 1 でない場合 (つまり、両方とも設定されてない場合) は 1 を返し、そうでない場合 (つまり、どちらか一方が設定されている場合) は 0 を返します。
VTESTPD 命令は、1 つ目のソースオペランドの整数要素のすべての符号ビットと、対応する 2 つ目のソースオペランドの符号ビットのビット単位比較を行います。1 つ目のソースオペランドの符号ビットと 2 つ目のソースオペランドの符号ビットの AND 演算がすべて 0 の場合は ZF フラグが設定され、それ以外の場合は ZF フラグがクリアされます。1 つ目のソースオペランドの符号ビットを反転したものと 2 つ目のソースオペランドの符号ビットの AND 演算がすべて 0 の場合は CF フラグが設定され、それ以外の場合は CF フラグがクリアされます。
1: ZF フラグと CF フラグの両方がクリアであることを示します。
0: ZF フラグまたは CF フラグのいずれかが設定されていることを示します。