2009-07-01 9 views
29

私は私のアプリの64ビットバージョンをコンパイルするには、私のC++プロジェクトにx64の設定を追加しました。すべてが正常に見えますが、コンパイラは次の警告与える:SSE2オプション++(x64)の

`cl : Command line warning D9002 : ignoring unknown option '/arch:SSE2'` 

を64ビットのプロジェクトのために、実際には利用できませんがSSE2の最適化ですか?

答えて

41

は、すべての64ビットプロセッサであると思わSSE2を有しています。コンパイラオプションは常にデフォルトでオンになっているため、手動でオンに切り替える必要はありません。 Wikipediaから

SSE命令:オリジナルAMD64アーキテクチャは、コア命令としてインテルのSSEとSSE2を採用しました。 2005年4月にSSE3命令が追加されました。SSE2はx87命令セットのIEEE80ビット精度を、IEEE 32ビットまたは64ビット浮動小数点数のいずれかに置き換えました。これは、他の多くの最新のCPUと互換性のある浮動小数点演算を提供します。 SSEおよびSSE2命令も拡張され、8つの新しいXMMレジスタで動作します。 SSEとSSE2は、最新のx86プロセッサで32ビットモードで利用できます。ただし、32ビットプログラムで使用されている場合、これらのプログラムはその機能を持つプロセッサを搭載したシステムでのみ動作します。これには、x64のプログラムが実行可能なマシンのセットを低下させないSSEとSSE2命令を代わりののx87命令を使用して、SSEおよびSSE2を持っている64ビットプログラムでの問題は、すべてのAMD64プロセッサとしてではありません。 SSEとSSE2は、従来のx87命令、MMX、3DNow!の機能のほとんどよりも高速で、複製されています。

+4

いいえ、SSE2は64ビットモードで唯一のオプションです。古いx87 FPUはもう使用できません。 – jalf

+1

なぜエラーが表示されますか? –

+4

これはエラーではなく、警告であり、あなたが行っていると思っていることを旗が行っていないことを警告するためにそこにあります。 –

3

私はSSE2を選択した場合に警告が表示されることを理解していますが、それでもまだ愚かです。しかし、/ arch:AVXを選択した場合でも警告が表示されます。 SP1で修正されると確信しています。そのちょっとしたスパムと煩わしさ。