Con il nome di Advanced Vector Extension (abbreviate in AVX) viene indicato un instruction set SIMD proposte e sviluppate da Intel, annunciate durante l'Intel Developer Forum del 2008, e che segue alle SSE4 grazie all'architettura di decima generazione conosciuta come Sandy Bridge, successiva a Nehalem.
Queste istruzioni prevedono l'introduzione di vettori a 256 bit (a differenza di quelli a 128 bit usati precedentemente) che consentiranno di ottenere un raddoppio dei calcoli in virgola mobile e migliorare l'organizzazione dei dati, rendendola più efficiente; le istruzioni a 128 bit verranno comunque eseguite sfruttando la metà inferiore dei nuovi registri ed è probabile una futura ulteriore espansione a 512 bit o addirittura 1024 bit.
Inoltre, il limite di istruzioni con al più 2 operandi verrà esteso fino a 3 operandi in maniera non distruttiva qualora il registro di destinazione sia differente dai 2 registri sorgente: ciò significa che ad esempio l'operazione a = a + b {\displaystyle a=a+b} verrà rimpiazzata da c = a + b {\displaystyle c=a+b} in modo che il registro a {\displaystyle a} rimanga inalterato dopo l'esecuzione dell'istruzione.
Le applicazioni che dovrebbero trarre i maggiori benefici dovrebbero essere quelle di tipo multimediale, in particolare quelle di modellazione 3D e di calcolo scientifico, anche in virtù del fatto che la scalabilità in relazione al numero di core del processore dovrebbe essere massima, e questo tipo di applicazioni sono proprio quelle che sono comunque in grado di avvantaggiarsi di un alto numero di core.
Le istruzioni AVX dovrebbero consentire inoltre di accelerare i calcoli relativi alla criptazione AES.
Advanced Vector Extensions 2 (AVX2), noto anche come Haswell New Instructions,[1] è un'espansione del set di istruzioni AVX introdotto nella microarchitettura Haswell di Intel.
AVX2 apporta le seguenti aggiunte:
DWORD-
QWORD-
A volte un'altra estensione che utilizza un diverso flag cpuid è considerata parte dell'AVX2; queste istruzioni sono elencate nella propria pagina e non di seguito:
VBROADCASTSS
VBROADCASTSD
VPBROADCASTB
VPBROADCASTW
VPBROADCASTD
VPBROADCASTQ
VBROADCASTI128
VINSERTI128
VEXTRACTI128
VGATHERDPD
VGATHERQPD
VGATHERDPS
VGATHERQPS
VPGATHERDD
VPGATHERDQ
VPGATHERQD
VPGATHERQQ
VPMASKMOVD
VPMASKMOVQ
VPERMPS
VPERMD
VPERMPD
VPERMQ
VPERM2I128
VPBLENDD
VPSLLVD
VPSLLVQ
VPSRLVD
VPSRLVQ
VPSRAVD