c - 如何有效地交错 8 个数字__int16位



我正在为空间索引构建莫顿数,我有 8 个无符号的 16 位数字,它们将变成__int128数字。效率至关重要,因此朴素的解决方案(遍历所有内容(或构建单独的 8 个 128 位数字太昂贵了。

我使用的是GCC,目标机器是64位,但没有BMI2支持。

如何加快计算速度?

如果你的机器是x86并且支持SSE2,那么使用movmsk指令有一个聪明的答案。谷歌SSE2 bit matrix transpose完整的代码。

相关内容

  • 没有找到相关文章

最新更新