如果可用,gcc是否使用英特尔的SSE 4.2指令进行文本处理?

Ste*_*mer 10 c c++ gcc sse simd

在这里读到英特尔SSE 4.2 instructions为加速字符串处理而推出的.

从文章引用:

SSE 4.2指令集首先在Intel的Core i7中实现,提供了字符串和文本处理指令(STTNI),它们利用SIMD操作处理字符数据.虽然最初设想用于加速字符串,文本和XML处理,但这些指令的强大新功能在这些域之外是有用的,值得重新审视众多应用程序的搜索和识别阶段,以利用STTNI来提高性能

  • gcc是否可以使用这些说明?
  • 如果是这样,哪个版本?
  • 如果没有,是否有任何开源库提供此功能?

小智 4

关于软件库,我会看看 Agner Fog 的 asmlib。它有许多例程的集合,包括几个使用 SSE4.2 的字符串操作例程,并在汇编中进行了优化。它提供了一些其他有用的函数,我使用这些函数返回有关 CPU 的信息,例如每个级别的缓存大小以及支持哪些扩展(例如 SSE4.2)。

http://www.agner.org/optimize/asmlib.zip

要在 GCC 中启用 SSE4.2,请使用 -msse4.2 进行编译,或者如果您有带有 AVX 的处理器,请使用 -mavx