To answer properly your question, yes. xmm
registers were introduced by Intel with the SSE
instruction set (IS) in 1999 with the Pentium III CPU. SSE
stands for Streaming SIMD Extension and is a set of vector instructions. xmm
registers are 128bit wide and can hold 4 floats
, 2 doubles
, or 16 chars
. SSE
can speed up signal processing applications (image processing, sound processing, compression, ...), encryption, and others quite dramatically when used properly.
On the other hand, mm
registers are part of the MMX
IS, another vector instruction set older than SSE
(1997 I suppose), and are 64bit wide.
Nowadays the vector instruction sets are becoming quite a fashion in a certain way (vector CPUs
were the standard for supercomputers back in the 70s & 80s - Cray's, ThinkingMachine's, ... computer were all vector based). In the past few years, Intel came up with many versions of SSE
and two new IS called AVX
& AVX2
(Advanced Vector Extension) with 256bit wide vectors implemented on SandyBridge/IvyBridge/Haswell, and AVX-512
first implemented on the KNC (Knight's Corner) of the Xeon Phi processor & co-processor line.
I encourage you to check the Intel documentation & Wikipedia for more information.