Intel's MMX technology is an extension of the Intel architecture (IA) instruction set. The technology uses a single-instruction, multiple-data (SIMD) technique to speed up multimedia and communications software by processing data elements in parallel.
The MMX instruction set adds 57 opcodes and a 64-bit quadword data type. In addition, there are eight 64-bit MMX technology registers, each of which can be directly addressed using the register names MM0 to MM7. The figure in Understanding the EMMS Instruction shows the layout of the eight MMX technology registers.
The MMX technology is operating-system transparent and 100 percent compatible with all existing Intel architecture software. Therefore, all applications will continue to run on processors with MMX technology. Additional information and details about the MMX instructions, data types, and registers can be found in the Intel Architecture MMX Technology Programmer's Reference Manual, order number 243007.
MMX intrinsics use the __m64 data type, which is not supported on x64 processors.
The header file mmintrin.h contains the declarations for the MMX intrinsics. The file ivec.h contains operator overloads for some of the MMX intrinsics, which are available for use in C++ programs.