Floating-point Intrinsics for Streaming SIMD Extensions
You should be familiar with the hardware features provided by the Streaming
SIMD Extensions (SSE) when writing programs with the intrinsics. The following
are four important issues to keep in mind:
- Certain intrinsics, such as _mm_loadr_ps
and _mm_cmpgt_ss, are not directly supported by
the instruction set. While these intrinsics are convenient programming
aids, be mindful that they may consist of more than one machine-language
instruction.
- Floating-point data loaded or stored as __m128
objects must be generally 16-byte-aligned.
- Some intrinsics require that their argument be immediates,
that is, constant integers (literals), due to the nature of the instruction.
- The result of arithmetic operations acting on two
NaN (Not a Number) arguments is undefined. Therefore,
FP operations using NaN arguments will not match
the expected behavior of the corresponding assembly instructions.