VC++コンパイラのSSE最適化結果をすこしみた

ディスアセンブルしてみたけど、C側の単精度の計算が遅いのは倍精度用の演算命令を単精度をコンバートしながら行っているからっぽい。
4つ同時にできるはずの演算を変換かけつつ2つ同時にしかしていないので、単精度用の演算を使って書いた側と差がある。でも計算が正確のはそのへんのおかげなのかな。
倍精度のほうは、そのまんまなのでコンパイラが行った最適化でもそこそこ速い。
イントリンシックで書いたほうの関数は、ほぼそのままアセンブルされると思っていたけど、結構謎のコードが混入されているので、素のアセンブリで書いたほうがもっと速いと思う。