Streaming SIMD Extensions 2

SSE2 is the superset to SSE, that is designed to fully supplant it, whilst adding floating point support.
SSE2 is one of the IA-32 SIMD instruction sets, designed by Intel, based the original SSE instruction set. It extends the earlier version SSE instruction set, and is intended to fully supplant MMX.
SSE2 adds support for 64-Bit double-precision floating point and for 64, 32, 16 and 8-Bit integer operations on the eight 128-Bit XMM registers first introduced with SSE. SSE2 adds no additional program state to that provided by SSE.
The addition of 128-Bit integer SIMD operations allows the programmer to completely avoid the eight 64-Bit MMX registers "aliased" on the original IA-32 floating point registers. This permits mixing integer SIMD and scalar floating point operations without the time-consuming mode switching required in MMX and SSE.
Other SSE2 extensions include a set of cache-control instructions intended primarily to minimize cache pollution when processing indefinite streams of information.
SSE2 was first introduced by Intel with the initial version of the Pentium 4 in 2001, using the Wilmette Core.
SSE2 has itself been extended by SSE3, also known as "Prescott New Instructions", introduced by Intel to the Pentium 4 in early 2004.
Rival chip-maker AMD later added support for SSE2 with the introduction of their Opteron and Athlon 64 ranges of 64-Bit CPUs, in 2003. However, AMD extended SSE2 out beyond Intel's original implementation by doubling the number of XMM registers, from 8 to 16, i.e. XMM0 through XMM15. The additional registers are only visible when the processor is running in the 64-Bit mode, known as AMD64. Intel also eventually adopted the additional XMM registers that AMD introduced, when Intel announced that it would adopt the AMD64 (aka EM64T) architecture for its own processors. This arrived in late 2004, with the Pentium 4 600 Series, which also added NX Bit Support.