【问题标题】:pcmpestri instruction to write similar strpos function?pcmpestri 指令写类似strpos 函数?
【发布时间】:2013-01-26 01:56:55
【问题描述】:

如何使用pcmpestri指令编写类似于C++中strpos函数的函数?我可以使用 g++ 编译器。

pcmpestri 是 SSE4 中的新指令

【问题讨论】:

  • 你能展示一下尝试 - 或添加一些细节吗?现在的情况,这个问题在结构上与所有那些“用Java写一个反转字符串的函数”的问题非常相似,即使在更高的层次上......
  • 我认为它是“低级”,因为它涉及汇编指令? ;)
  • pcmpistri 更快,并且可能也可以做到。查看 EQUAL_ORDERED。我会给出更好的答案,但我没有支持 SSE 4.2 的 CPU,所以我无法测试任何东西。

标签: c++ assembly sse strpos sse4


【解决方案1】:

在使用 SSE 指令之前,您必须存储浮点堆栈,然后再恢复。这是昂贵的,除非你的字符串是巨大的,否则不值得。对于大字符串,更好的算法是要走的路(Boyer-Moore 等)。

【讨论】:

  • 这对 MMX 来说是正确的。 SSE 并非如此(您需要进行 EMMS;显然仍应考虑次二次算法)
猜你喜欢
  • 2016-07-28
  • 2014-06-24
  • 2021-12-17
  • 2017-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-08
  • 2012-09-17
相关资源
最近更新 更多