The xmm registers do not necessarily contain float values. They are 128-bit SIMD registers, which basically means that one or more values ββcan be stored inside the SIMD register; usual configurations - 8 16-bit ints, 4 32-ints, 4 floats, 2 two-local; etc.
However, the compiler has the right to place it where it likes, and as long as the first element of this is 32-bit, that you are good.
source share