I have been looking quite a bit for information on the penalty when switching between SSE2 integer instructions and SSE float point instructions. I assume it is there, but I cannot find anything to go by.
Background: There are quite a number of SSE instructions that have an SSE2 equivalent with lower latency and better throughput. For instance:
* "pand" (1/0.5) and "andps" (1/1)
* pcmpeqd (1/0.5) and "cmpps" (3/1)
* "pblendvb" (2/1) vs "blendvps" (2/2)
(of course there are more, but just some basic examples).
Some can always be interchanged and some only in certain cases, but anyway - what is the penalty for executing an "integer" instruction on float point data?
Edit: Corrected blendvX timings.