インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス
2 つの 256 ビットまたは 128 ビットの float64 ベクトルのパックド・ビット・テストを実行して、ZF フラグを設定します。対応するインテル® AVX 命令は VTESTPD です。
extern int _mm256_testz_pd(__m256d s1, __m256d s2); |
extern int _mm_testz_pd(__m128d s1, __m128d s2); |
s1 |
1 つ目の float64 ソースベクトル |
s2 |
2 つ目の float64 ソースベクトル |
s1 と s2 の倍精度 (64 ビット) 浮動小数点要素のビット単位の AND (論理積) を計算し、中間値の各 64 ビット要素の符号ビットが 0 の場合は ZF を 1 に設定し、そうでない場合は ZF を 0 に設定します。s1 と s2 のビット単位の AND NOT (否定論理積) を計算し、中間値の各 64 ビット要素の符号ビットが 0 の場合は CF を 1 に設定し、そうでない場合は CF を 0 に設定します。ZF 値を返します。
インテル® アドバンスト・ベクトル・エクステンション (インテル® AVX) 命令には、128 ビットの SIMD 命令の機能がすべて含まれています。128 ビットのベクトル長を持つインテル® AVX 命令は、YMM レジスターの上位 128 ビットを 0 に設定します。YMM レジスターの下位ビットは、対応する SIMD XMM レジスターにエイリアスされます。
ZF フラグが設定されている場合は非ゼロ。
ZF フラグが設定されていない場合は 0。