06/11/30 22:49:00 rxhNULQm0
>>594
その原因は予測がつくのですがアセンブラファイルを出力して調査しました。
AMD64環境ではSSE2必須なのでCPU別最適化を指定しなくともコンパイラは自動的に浮動小数点命令をSSE2に置き換えます。
その結果、gccでのSSE2最適化に近いベクタライズなしのコードが出力されます。
そのコードはICLでのCPU別最適化指定コードに若干劣る程度の性能となります。当然、FPU版と比較すればかなり高速化されます。
ですがCPU最適化済みのコードを64ビット化してもレジスタ数の増加しかアドバンテージが無いわけでその効果はわずかです。
32ビットコードと64ビットコードの性能テストは最低でもSSE2最適化がなされたコード同士で行うべきでしょう。
結論:重最適化済みのコードで64ビット化による10~20%の性能アップなんて無理です!