2012-05-13 41 views
6

我需要快速比較機器上的兩個字符串與SSE4支持。我怎樣才能不用寫彙編器插入?比較字符串由SSE4包裝

一些包裝如long long bitmask = strcmp(char* a, char* b)將是完美的。

+0

它可能取決於編譯器(包括版本)和使用的標誌。如果你使用'gcc-4.7',你是否嘗試過'-mcpu = native -O3'等等? –

+1

http://software.intel.com/sites/products/documentation/studio/composer/en-us/2011/compiler_c/intref_cls/common/intref_sse42_comp.htm – Mysticial

+0

谷歌搜索「sse4 strcmp」給出了很多結果,包括現成的彙編代碼。您可以嘗試使用內在函數將它們轉換爲C.玩的開心。 – hirschhornsalz

回答

0

使用Agner霧的asmlib。 http://www.agner.org/optimize/#asmlib

他已經費了很大力氣爲程序編寫代碼,包括使用SSE4.2指令。使用他的功能A_strcmp(或不區分大小寫的版本A_stricmp)。

這將是有趣的,所以如何使用內在性的方法比較性能。