JIT: skip weird fmul rounding if the input is known to be single precision
JIT: minor cleanup, avoid MOVSD where MOVAPD will do

Avoids false dependencies.
JIT: float instruction attribute fixes, fix binding mistakes

These instructions modify only the bottom halves of the output register,
so the output register needs to be treated as an input too.
JIT: more optimizing of float ops based on known input characteristics

If the inputs are both float singles, and the top half is known to be identical
to the bottom half, we can use packed arithmetic instead of scalar to skip
the movddup.

This is slower on a few rather old CPUs, plus the Atom+Silvermont, so detect
Atom and disable it in that case.

Also avoid PPC_FP on stores if we know that the output came from a float op.
Merge pull request #1258 from FioraAeterna/avoidfmulround

JIT: optimize single-precision ops based on knowledge of their inputs