ストリーミングSIMD拡張命令
MMX/SSE後継のSIMD拡張命令セットで、呼称がIntel Advanced Vector Extensionsとなった。Sandy Bridgeマイクロアーキテクチャ(2011年 -)で初めて搭載された。浮動小数点演算の演算幅がSSEの2倍の256ビットとなり、1命令で8つの単精度浮動小数点演算もしくは4つの倍精度浮動小数点演算を実行することができる。また、命令デコード性能向上のため、新しい命令フォーマット(VEXエンコーディング)が採用されている。3 or 4オペランドの非破壊型命令もサポートするため、レジスタ退避・復元処理の記述を省くことができる。この非破壊型の命令フォーマットに関しては従来の128ビット幅のSSE命令にも使うことができるため、AVXに対応したプロセッサでは新規に導入された256ビット命令を使わなくてもSIMD演算の性能が向上する可能性がある。
SSEが導入された際には専用の128ビットレジスタが新設されたが、AVXの256ビットレジスタは下位の128ビットを既存のSSEレジスタと共有している。そのためSSE命令とAVX命令の間でのデータ交換は容易である。
x86プロセッサにおいて融合積和演算を実現するための拡張命令がFMAである。2007年にAMDがSSE5命令の一部として、2008年にインテルがAVX命令のサブセットとして採用を発表したが、両者の仕様は異なるものであった。その後、インテルは2009年初頭にFMA命令の仕様を変更し、4オペランド (FMA4) をやめ3オペランド形式 (FMA3) とした。2009年5月にはAMDがSSE5命令の採用を取りやめ、AVXのサポートを表明したため、仕様の統一が図られたかと思われたが、FMA命令に関してはインテルが仕様を変更する前の4オペランド版FMAを採用したため、FMA4とFMA3という二系統のFMA命令が混在していた。その後、AMDがZenマイクロアーキテクチャでFMA4の削除およびサポートの打ち切りを表明したことで、FMA命令についても仕様の統一が図られた。
FMA命令では±(A×B)±Cの形で表現される単精度/倍精度の浮動小数点演算を1命令で実行できる。乗算結果の符号を反転するか、乗算後に加算を行うか減算を行うかによって以下の4つのバリエーションがある。
Nehalemマイクロアーキテクチャの第1世代Intel Core iで初めて実装された。7個の命令を追加。SSE 4.2の追加命令は以下の通り。
String & Text New Instructions (STTNI) PCMPESTRI PCMPESTRM PCMPISTRI PCMPISTRM PCMPGTQ
Application Targeted Accelerators (ATA) CRC-32 POPCNT - ビットが立っている数を数える