我需要快速比较机器上的两个字符串和SSE4支持。如果不编写汇编程序插入,我怎么能这样做?
像long long bitmask = strcmp(char* a, char* b)
这样的包装将是完美的。
答案 0 :(得分:9)
您应该使用英特尔SSE内在函数,而不是使用内联汇编。
对于字符串比较,您需要SSE4.2内在函数:
答案 1 :(得分:0)
这是一篇使用SSE 4.2来增强字符串操作的好文章: http://www.strchr.com/strcmp_and_strlen_using_sse_4.2
答案 2 :(得分:0)
使用Agner Fog的asmlib。 http://www.agner.org/optimize/#asmlib
他已经为你在汇编中编写代码而烦恼,包括使用SSE4.2指令。使用他的函数A_strcmp
(或不区分大小写的版本A_stricmp
)。
使用内在函数的方法在性能上的比较会很有趣。