使用SIMD的非同质比较

时间:2013-05-06 09:44:47

标签: c++ comparison simd

是否可以使用SIMD指令(内在函数)进行非同源(两种不同的数据类型)比较,特别是在SSE2 uptil SSE4.x指令集中? 。即漂浮和双倍?或32位和64位整数?甚至是带整数等的浮点数?

1 个答案:

答案 0 :(得分:2)

你的意思是你有一个整数数组,你想将它与双精度数组中的值进行比较?遗憾的是,您必须执行某种转换才能实现这一目标。有一组cvtXX2YY指令可以执行此操作,并且它们应该在内部函数中可用。你只需挑选出正确转换的那个,例如: _mm_cvtpi32_ps - 正如在这个例子中可以看到的,你不能将四个整数转换为四个浮点数......一次只能转换两个。不要问我为什么......

如果你问“你能用另一个整数和浮点数转换一个整数和一个浮点数”,那么不,那是不可用的。