【发布时间】:2011-01-22 20:12:43
【问题描述】:
在我目前正在处理的项目中,我经常需要在可以插入元素的排序数组中找到可能的最低索引(如 C++ 中的 std::lower_bound )。
使用 SSE 来加速我的算法对我来说似乎很有吸引力,因为我正在使用 uint32 数组,它的大小通常是处理器缓存线的大小。
我以前从未使用过 SSE 指令,所以我无法弄清楚这个函数的 SSE 实现是什么样的。请提供提示以帮助我使用 SSE 以最佳方式写出。
【问题讨论】:
-
花时间做一些研究。然后考虑一下,也许尝试一些事情来“感觉”它是如何工作的。然后问一个更有针对性的问题——这里没有问题。
-
我找到了将 4 个 32 位压缩整数与 32 位操作数进行比较的 pcmpled,但我无法找到如何获得该指令的结果。如果你有的话,也许你可以指出如何使用这个指令(或相应的内在指令)的一个很好的参考?
-
好像我错了; pcmpled 比较两个 32 位整数的 vector4,并根据比较结果用 0 和 1 填充 vec4。对我来说没有什么可利用的。似乎比利奥尼尔是对的,SSE 对我没用。