DirectX初心者スレでちょっと話題になり、こちらのスレが適切かと思い質問させていただきにきました。
よろしくお願いします。

float a = 0.54351f;
float b = 0.21356f;
a *= b;

というC++のプログラムがあったとします。(aとbは実際にはローカル変数ではなく、最適化により式が消えることはないとしてください)
この時、aの結果が「PC環境によって異なる」かどうかが知りたいのです。

DirectXにあるD3DXというライブラリでは、内部でSSEやらSSE2やら3DNow!やら、色々
「そのPC環境で、もっとも浮動小数点計算が高速な手段を探し、それを使う」
という挙動をします。
もともと描画ライブラリなので、この挙動自体素晴らしいものだとは思います。

ただ、互換性が重要な場合に困ってしまうのです。
そこで自前の浮動小数点計算ライブラリを作るべきという話になったのですが、最初にあげたように
普通にfloatを使っているだけなら互換性が保証されるのか?という点においてまったく自信がありません。


少し調べたところ「互換性重視ならx87FPUを使うべき」という意見も見かけました。
ただ「x87FPUと使え」と指定する方法も分かりません。

「x86用コンパイラは、通常小数点計算をx87FPUにやらせるようにコンパイルする」とあるのですが、実際のところどうなのでしょうか?
http://msdn.microsoft.com/ja-jp/library/e7s85ffb%28VS.80%29.aspx
コンパイラオプションでSSEを有効にする、しないのようなオプションもあるにはあるのですが…。

分からないことだらけな上、長文ですが、ご意見よろしくお願いいたします。