Я читаю руководство по интуиции Intel во время реализации поддержки SIMD. У меня несколько путаниц, и мои вопросы таковы, как показано ниже.
-
__m128 _mm_cmpeq_ps (__m128 a, __m128 b)
Документация говорит, что она используется для сравнения упакованных точек с плавающей запятой. Что означает "упакованный"? Нужно ли мне как-то накапливать свои значения float, прежде чем я смогу их использовать? -
Для двойной точности существуют такие функции, как
_mm_cmpeq_sd
, что означает сравнение "более низких" элементов с плавающей запятой двойной точности. Что означают нижние и верхние элементы двойной точности? Могу ли я использовать их для сравнения элементов типа С++double
или нет? Или мне нужно обработать их каким-то образом, прежде чем сравнивать их?