__m256i 版本 _mm_test_all_zeros
__m256i version of _mm_test_all_zeros
我知道如何使用 _mm_test_all_zeros
内部函数测试 _m128i 寄存器是否全为零。
这个内部函数的 AVX2/__m256i 版本是什么?如果没有,测试 SIMD 寄存器中的所有 256 位是否为零的最快方法是什么?
最快的可能是 vptest
指令。
// Return 1 if `x` is all zeros, otherwise 0
inline int test_all_zeros( __m256i x )
{
return _mm256_testz_si256( x, x );
}
我知道如何使用 _mm_test_all_zeros
内部函数测试 _m128i 寄存器是否全为零。
这个内部函数的 AVX2/__m256i 版本是什么?如果没有,测试 SIMD 寄存器中的所有 256 位是否为零的最快方法是什么?
最快的可能是 vptest
指令。
// Return 1 if `x` is all zeros, otherwise 0
inline int test_all_zeros( __m256i x )
{
return _mm256_testz_si256( x, x );
}