__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 );
}