6

SSE4をサポートするマシン上の2つのストリングをすばやく比較する必要があります。アセンブラインサートを作成せずにそれを行うにはどうすればよいですか?

のようないくつかのラッパーlong long bitmask = strcmp(char* a, char* b)は完璧でしょう。

4

3 に答える 3

9

インラインアセンブリを使用する代わりに、IntelSSE組み込み関数を使用する必要があります。

文字列を比較するには、SSE4.2組み込み関数が必要です。

ドキュメントはこちら: http ://software.intel.com/sites/products/documentation/doclib/stdxe/2013/composerxe/compiler/cpp-mac/GUID-6E9CFDF2-5DF6-42A4-B429-0E2CD441342E.htm

于 2012-05-13T21:07:04.883 に答える
2

Agner Fog の asmlib を使用します。 http://www.agner.org/optimize/#asmlib

彼は、SSE4.2 命令を使用することを含め、アセンブリでコードを作成するために既に苦労しています。彼の関数A_strcmp(または大文字と小文字を区別しないバージョンA_stricmp) を使用します。

組み込み関数を使用するメソッドのパフォーマンスがどのように比較されるかは興味深いでしょう。

于 2013-06-03T14:05:48.300 に答える
0

これは、文字列操作を強化するために SSE 4.2 を使用する良い記事です: http://www.strchr.com/strcmp_and_strlen_using_sse_4.2

于 2013-06-03T07:42:01.437 に答える