Как проверить 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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