D-Programming-Language/dmd — comment on commit aada6cf50f347d4ebc018c4dab63695c83bcd7d4
File: src/backend/cgxmm.c line 53
By donc:

Yeah, you can safely use integer operations to load a floating point constant (but probably not vice-versa, because your integer might turn out to be a denormal operand). In fact by my reading of Agner Fog's manuals, the floating point load is actually done in the integer unit on Core2 and earlier!

Agner has some nice routines for loading constants into XMM registers. Apart from 0.0 (which is just pxor), there's a sequence of 3 instructions for powers of 2 (0.25/0.5/1.0/2.0...) and 2 instructions for -(2^^n). They're particularly useful for generating parallel constants, eg, [0.5, 0.5, 0.5, 0.5].