Sergey asks "Is there any chance that in MSVC++ 2005 Fused Multiply Add (FMA) function will be available as a part of runtime library on all supported platforms?"
To my knowledge FMAs won't be supported on all platforms since not all platforms have FMA instructions (some platforms don't even have floating point units!). However, I think we're moving in that direction. I'll try to find out for you with respect to the x86 and x64 platforms. In VC++, FMAs will be used by default under the fp:precise when they're available on the architecture. I believe that the fp:strict model precludes FMAs since it potentially violates strict FPU status semantics and exception semantics. For instance, there are values for a*b+c where the fused operation returns a valid answer but the unfused operation overflows.
An interesting side point since I'm on the subject. On ia64's FPU and many other modern FPU architectures, separate multiply and add instructions aren't provided. Two floating point registers are reserved to hold the values 0 and 1 respectively. Simple addition is accomplished by using the 1 valued register as one of the multiply arguments; similarly simple multiplication is accomplished by using the 0 valued register as the addition argument.