8087(1980)
浮動小数点演算ユニット(FPU)。
精度は80bit、スタック型のレジスタが8本。
80486(1989)
FPUがCPUに内蔵化された。
MMX Pentium(1997)
FPUレジスタ80bit×8のうち64bitを使ってmmレジスタとし、8bit×8~32bit×2の整数SIMD計算が可能(MMX)。
わざわざレジスタを共用にしたのは、コンテキストスイッチ時のレジスタ退避の仕組みに変更点がなく、OSの対応を待つ必要がなかったため。
Pentium Ⅲ(1999)
128bitのxmmレジスタを8本新設、32bit×1、32bit×4の浮動小数点演算が可能(SSE)。
Pentium 4(2000)
xmmレジスタで64bit×1、64bit×2の浮動小数点演算に加え、8bit×16~64bit×2の整数演算も可能(SSE2)。
以降、機能拡張が続いたが、レジスタ幅などの変更はなし。
Sandy Bridge(2011)
xmmレジスタを16本に増やし、さらに256bitに伸ばしてymmレジスタとした(下位128bitはxmmレジスタと共用)。
32bit×8、64bit×4の浮動小数点演算が可能になった(Intel AVX)。
Haswell(2013)
ymmレジスタで8bit×32~64bit×4の整数演算が可能に(Intel AVX2)。
内容別
80bit浮動小数演算、超越関数(sin,cos,exp,log)計算
x87命令(実際にはSSE以降でソフトウェア的に計算した方が速い)
64bit・32bit浮動小数演算
SSEで4並列(32bit)
SSE2で2並列(64bit)
AVXで4並列(64bit)、8並列(32bit)
逆数命令、逆数平方根命令は64bitでは使用できない
64bit~8bit整数演算
MMXで2並列(32bit)~8並列(8bit)
SSE2で2並列(64bit)~16並列(8bit)
AVX2で4並列(64bit)~32並列(8bit)
一部不可能な命令あり