SSE と union 続き

icc をインストールしたので、
問題のソースコードをビルドしてみたが、
結果は駄目だった。
ただ、g++ が union で bitboard を定義しただけで滅茶苦茶遅くなったのに対して、
icc は union を定義しただけでは速度低下は無かった。
ただ、SSE の命令を使用すると全然駄目だった。


しかし最も悲しいことはこれではなかった。
あの伝説の8六歩の棋譜の投了図の指し手生成回数は、
SSE, union 使わずで
g++ は 2M回/S だったのに、
icc は 1.5M回/S だった。


g++ 圧勝。


なんでこんなことになっているんだろう?
icc の最適化が最新のCPUに合わせてあって、自分のCPUが古いから駄目っていう可能性もあるのかな?
それより、今までずっと g++ を使ってたせいで、
g++ の最適化に合わせたコードを書いていた可能性はあるなぁ。
VC++ 64bit 版はどうなんだろう?環境無いから試せないけど。


結局ちっとも高速化しなかったな。
マジで高速化分からん……