2 つの 256 ビットまたは 128 ビットの float64 ベクトルのパックド・ビット・テストを実行して、ZF フラグと CF フラグを設定します。対応するインテル® AVX 命令は VTESTPD です。
extern __m256d __cdecl _mm256_testnzc_pd(__m256d s1, __m256d s2); |
extern __m128d __cdecl _mm_testnzc_pd(__m128d s1, __m256d s2); |
s1 |
1 つめの float64 ソースベクトル |
s2 |
2 つめの float32 ソースベクトル |
ZF フラグと CF フラグを設定します。ZF フラグは、1 つめのソースベクトルと 2 つめのソースベクトルのビット単位の AND (論理積) 演算の結果に基づいて設定されます。 CF フラグは、1 つめのソースベクトルと 2 つめのソースベクトルのビット単位の AND (論理積) 演算と NOT (論理否定) 演算の結果に基づいて設定されます。対応する VTESTPD 命令は、すべての結果ビットが 0 の場合に ZF フラグと CF フラグを設定します。 結果ビットが非ゼロの場合は、ZF フラグと CF フラグをクリアします。
_mm_testnzc_pd 組み込み関数は、128 ビットの float64 ソースベクトルの結果に応じて ZF フラグと CF フラグを設定します。_mm_testnzc_pd 組み込み関数は、256 ビットの float64 ソースベクトルの結果に応じて ZF フラグと CF フラグを設定します。
インテル® AVX 命令には、128 ビットの SIMD 命令の機能がすべて含まれています。128 ビットのベクトル長を持つインテル® AVX 命令は、YMM レジスターの上位 128 ビットを 0 に設定します。YMM レジスターの下位ビットは、対応する SIMD XMM レジスターにエイリアスされます。
ZF フラグと CF フラグの両方が設定されている場合は非ゼロ
ZF フラグと CF フラグの両方が設定されていない場合は 0