Как проверить Inf для AVX Intrinsic __m256C++

Программы на C++. Форум разработчиков
Anonymous
Как проверить Inf для AVX Intrinsic __m256

Сообщение Anonymous »

Как лучше всего проверить, содержит ли AVX invinsic __m256 (вектор 8 Float ) какой -либо inf ? Я попробовал < /p>

Код: Выделить всё

__m256 X=_mm256_set1_ps(1.0f/0.0f);
_mm256_cmp_ps(X,X,_CMP_EQ_OQ);
< /code>

Но это сравнивается с True < /code>. Обратите внимание, что этот метод найдет NAN 
(который сравнится с false ). Таким образом, один из способов - проверить на наличие x!__m256 Y=_mm256_mul_ps(X,_mm256_setzero_ps()); // 0*X=nan if X=inf
_mm256_andnot_ps(_mm256_cmp_ps(Y,Y,_CMP_EQ_OQ),
_mm256_cmp_ps(X,X,_CMP_EQ_OQ));
< /code>

Однако это кажется несколько длинным. Есть быстрее?

Подробнее здесь: https://stackoverflow.com/questions/306 ... insic-m256

Вернуться в «C++»