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