Example 4-1 Resetting The Register Between __M64 And Fp Data Types - Intel ARCHITECTURE IA-32 Reference Manual

Architecture optimization
Table of Contents

Advertisement

Don't empty when already empty: If the next instruction uses an
MMX register,
Group Instructions: Try to partition regions that use
instructions from those that use 64-bit SIMD integer instructions.
This eliminates needing an
critical loop.
Runtime initialization: Use
initialization of
resetting the register between data type transitions. See Example 4-1
for coding usage.
Example 4-1
Resetting the Register between __m64 and FP Data Types
Incorrect Usage
__m64 x = _m_paddd(y, z);
float f = init();
Further, you must be aware that your code generates an MMX
instruction, which uses the MMX registers with the Intel C++ Compiler,
in the following situations:
when using a 64-bit SIMD integer intrinsic from MMX technology,
SSE, or SSE2
when using a 64-bit SIMD integer instruction from MMX
technology, SSE, or SSE2 through inline assembly
when referencing an
Additional information on the x87 floating-point programming model
can be found in the IA-32 Intel® Architecture Software Developer's
Manual, Volume 1. For more documentation on
http://developer.intel.com.
Optimizing for SIMD Integer Applications
incurs a cost with no benefit.
_mm_empty()
instruction within the body of a
emms
_mm_empty()
and
__m64
x87 FP
Correct Usage
__m64 x = _m_paddd(y, z);
float f = (_mm_empty(), init());
data type variable
__m64
x87 FP
during runtime
data types. This ensures
, visit
emms
4
4-5

Advertisement

Table of Contents
loading
Need help?

Need help?

Do you have a question about the ARCHITECTURE IA-32 and is the answer not in the manual?

Subscribe to Our Youtube Channel

Table of Contents

Save PDF