__m256i версия _mm_test_all_zeros - PullRequest
1 голос
/ 28 мая 2019

Я знаю, как проверить, все ли регистры _m128i равны нулю с присущей _mm_test_all_zeros.

Какая версия этого встроенного AVX2 / __m256i? Если он недоступен, какой самый быстрый способ проверить, равны ли все 256 битов в регистре SIMD нулю?

1 Ответ

6 голосов
/ 28 мая 2019

Самая быстрая, вероятно, vptest инструкция.

// Return 1 if `x` is all zeros, otherwise 0
inline int test_all_zeros( __m256i x )
{
    return _mm256_testz_si256( x, x );
}
...