2013-05-06 4 views
1

Можно ли сравнивать с неземными (не идентичными) сопоставление двух типов данных, используя инструкции SIMD (встроенные функции), в частности, в наборе инструкций SSE4x для SSE2? , т.е. плавать и удваивать? или 32-битные и 64-битные целые числа? даже float с целым числом и т. д.?Сравнение не гомогенных значений с использованием SIMD

ответ

2

Вы имеете в виду, что у вас есть, скажем, массив целых чисел, и вы хотите сравнить его со значениями в массиве удвоений? Вы, к сожалению, должны выполнить какое-то преобразование для достижения этого. Есть группа команд cvtXX2YY, которые делают это, и они должны быть доступны в встроенных функциях. Вам просто нужно выбрать тот, который делает правильное преобразование, например. _mm_cvtpi32_ps - как видно из этого примера, вы не можете преобразовать четыре целых числа в четыре поплавка ... Всего два раза. Не спрашивайте меня, почему ...

Если вы спрашиваете о «Можете ли вы преобразовать одно целое число и одно плавающее число с другим целым числом и плавать», то нет, это не доступно.

+0

_mm_cvtepi32_ps является неотъемлемой частью CVTDQ2PS, он может преобразовывать четыре целых числа. – MBo

Смежные вопросы