SSE4をサポートするマシン上の2つのストリングをすばやく比較する必要があります。アセンブラインサートを作成せずにそれを行うにはどうすればよいですか?
のようないくつかのラッパーlong long bitmask = strcmp(char* a, char* b)
は完璧でしょう。
インラインアセンブリを使用する代わりに、IntelSSE組み込み関数を使用する必要があります。
文字列を比較するには、SSE4.2組み込み関数が必要です。
Agner Fog の asmlib を使用します。 http://www.agner.org/optimize/#asmlib
彼は、SSE4.2 命令を使用することを含め、アセンブリでコードを作成するために既に苦労しています。彼の関数A_strcmp
(または大文字と小文字を区別しないバージョンA_stricmp
) を使用します。
組み込み関数を使用するメソッドのパフォーマンスがどのように比較されるかは興味深いでしょう。
これは、文字列操作を強化するために SSE 4.2 を使用する良い記事です: http://www.strchr.com/strcmp_and_strlen_using_sse_4.2