2

私のマシンは Core2 マイクロアーキテクチャーで、SSE 命令セットを対象とする算術コードをコンパイルしようとしました。Web と公式マニュアルで検索しましたが、-march=native私のチップは SSE をサポートしているため、フラグを追加するだけでよいと思います。

しかし gcc -march=native -Q --help=target -v、フラグが実際に機能するかどうかを確認するために使用すると、画面に表示される結果は期待したものではありません。例:</p>

-msse                               [disabled]
-msse2                              [disabled]
-msse2avx                           [disabled]
-msse3                              [disabled]
-msse4                              [disabled]
-msse4.1                            [disabled]
-msse4.2                            [disabled]
-msse4a                             [disabled]
-msse5                              
-msseregparm                        [disabled]
-mssse3                             [disabled]

すべての SSE (および MMX) 命令が無効になっていることがわかりました。誰かがそれを解決する理由と方法を教えてもらえますか? どうもありがとう!</p>

4

1 に答える 1

4

の出力にgcc -march=native -Q --help=target -vは、 で定義されたオーバーライドは含まれません-march。gcc は、アーキテクチャ固有のオーバーライドを処理するコードを実行する前に出力を返すためです。

この問題に関するバグレポートを参照してください。具体的には、私のようなユーザーを混乱させ続けていることを確認してください。

于 2014-08-26T20:50:22.060 に答える