| Single Instruction | Multiple Instruction | |
| Single Data | SISD | MISD |
| Multiple Data | SIMD | MIMD |
mm0 - mm7 まで 各64bits(8bytes)。レジスタは FPU と共有
Intel 系では FPU->MMX のときは emms 命令を使う必要がある。 AMD 系では FPU->MMX, MMX->FPU のときに femms 命令を使う。
FPU, MMX と同じレジスタを共有しているため、 emms 命令を呼び出しの前後に使う必要がある
XMMレジスタは xmm0 - xmm7 まで 各128bit
SSE, SSE2 が基本命令セットに組み込まれている。 XMM レジスタは xmm15 までの 16本
| MMX | 3DNow! | SSE | SSE2 | SSE3 | SSE4 | AVX | |
| K6 | ○ | ||||||
| K6-2 | ○ | ○ | |||||
| K6-3 | ○ | ○ | |||||
| Athlon | ○ | ○ (Enhanced) | |||||
| AthlonXP | ○ | ○ (Professional) | ○ | ||||
| Athlon64 | ○ | ○ | ○ | ○ | |||
| Athlon64(Venice) | ○ | ○ | ○ | ○ | ○ | ||
| Athlon64 X2 | ○ | ○ | ○ | ○ | ○ | ||
| Phenom | ○ | ○ | ○ | ○ | ○ | ○ SSE4a | |
| FX | ○ | ○ | ○ | ○ | ○ | ○ SSE4a, 4.2 | ○ |
| MMX Pentium | ○ | ||||||
| Pentium II | ○ | ||||||
| Pentium III | ○ | ○ | |||||
| Pentium 4 | ○ | ○ | ○ | ||||
| Pentium M | ○ | ○ | ○ | ||||
| Pentium 4(Prescott) | ○ | ○ | ○ | ○ | |||
| Pentium D | ○ | ○ | ○ | ○ | |||
| Core | ○ | ○ | ○ | ○ | |||
| Core2Duo | ○ | ○ | ○ | ○ (+ SSSE3) | |||
| Core2(Penryn) | ○ | ○ | ○ | ○ | ○ SSE4.1 | ||
| i7 | ○ | ○ | ○ | ○ | ○ SSE4.2 | ||
| i7 (Sandy Bridge) | ○ | ○ | ○ | ○ | ○ SSE4.2 | ○ | |
| Geode GX, LX | ○ | ○ | |||||
| Geode NX | ○ | ○ (Professional) | ○ | ||||
| Atom | ○ | ○ | ○ | ○ (+ SSSE3) |
Visual C++ の場合
コンパイラオプション
-ftree-vectorize オプションで、ループ処理を AltiVec, SSE を使用するように自動生成する。 -O2 等の最適化では有効にならない。
Programmable shader を 3DCG 以外の一般的な計算に利用する方法。 使えるスレッド数は GPU ごとに異なる。
RadeonHD 4000 シリーズ, GeForce 8 シリーズ から使える
GeForce8以上で使える。 Quadro FX 370, 570, 1700, 5600, 4600 以降