SSE4
SSE4 (Streaming SIMD Extensions 4) - це набір SIMD-інструкцій для процесорів архітектури x86-64. Набір інструкцій було анонсовано були 27 вересня 2006 року. Самі інструкції були реалізовані в процесорах Intel Core та AMD K10. В SSE4 налічується 54 інструкцій[1], розділених на дві основні категорії: векторизація операцій для прискорення роботи з медіа, та для обробки тексту.
Intel використовувала маркетингову назву HD Boost для інструкцій SSE4.[2]
SSE4 Складається з 54 інструкцій. З них 47 відносять до SSE4.1, вони були реалізовані в мікрокархітектурі Peryn, а решта 7 команд (SSE4.2) з'явились лише в процесорах з мікроархитектурою Nehalem.
В AMD процесорах набір інструкцій називається SSE4a, був реалізований в процесорах мікроархітектури Barcelona. Він містить в собі 4 інструкції що відсутні у наборі SSE4.1 від intel. Повний набір інструкцій SSE4 (SSE4.1+SSE4.2) лише в процесорах FX на базі мікроархітектури Bulldozer.
MPSADBWMultiple Packed Sums of Absolute Difference. Рахує суму абсолютних різниць восьми значень, по чотири суми за раз (тобто |x0−y0|+|x1−y1|+|x2−y2|+|x3−y3|, |x0−y1|+|x1−y2|+|x2−y3|+|x3−y4|, ..., |x0−y7|+|x1−y8|+|x2−y9|+|x3−y10|). Така операція важлива при роботі деяких HD кодеків,і дозволяє обробити блок зображення 8х8 за декілька циклів процесора.PHMINPOSUWPacked Horizontal Word Minimum пошук серед 16 бітових беззнакових цілих, такого що має мінімальне значення.PMULDQMultiply Packed Signed Dword Integers Множення 32 бітових знакових цілих та повертає результат в 64бітове ціле.PMULLDMultiply Packed Signed Dword Integers and Store Low Result. Множення 32-бітових знакових цілих та повертає в результат молодшу 32бітну частину.DPPS,DPPDDot Product of Packed Single/Double Precision Floating-Point Values - скалярне множення 32 та 64 бітових цілих.- BLENDPS, BLENDPD, BLENDVPS, BLENDVPD, PBLENDVB, PBLENDW
PMINSB,PMAXSB,PMINUW,PMAXUW,PMINUD,PMAXUD,PMINSD,PMAXSD- мінімум,максимум для різних типів.ROUNDPS,ROUNDSS,ROUNDPD,ROUNDSD- округлення числа з рухомою комою в ціле.- INSERTPS, PINSRB, PINSRD/PINSRQ, EXTRACTPS, PEXTRB, PEXTRD/PEXTRQ
PMOVSXBW,PMOVZXBW,PMOVSXBD,PMOVZXBD,PMOVSXBQ,PMOVZXBQ,PMOVSXWD,PMOVZXWD,PMOVSXWQ,PMOVZXWQ,PMOVSXDQ,PMOVZXDQPacked Move with Sign/Zero ExtendPTESTLogical ComparePCMPEQQCompare Packed Qword Data for Equal порівняння 64 бітових значень на рівність та повернення 64бітових масокPACKUSDWPack with Unsigned Saturation Пакування 32бітних знакових цілих в 16бітні беззнакові з насиченням (буде обрізано до максимального значення - 65536).MOVNTDQALoad Double Quadword Non-Temporal Aligned Hint - інструкція для ефективного читання даних в SSE-регістр.
Інструкції для порівняння рядків:
PCMPESTRIPacked Compare Explicit Length Strings, Return IndexPCMPESTRMPacked Compare Explicit Length Strings, Return MaskPCMPISTRIPacked Compare Implicit Length Strings, Return Index Порівнюють дані як .PCMPISTRMPacked Compare Implicit Length Strings, Return MaskPCMPGTQ- Порівняння спакованого набору 64бітових даних на "більше ніж"POPCNT- Рахує кількість бітів що дорівнюють одиниці.LZCNT- рахує кількість провідних нулів.- CRC32 - пришвидшує вирахування CRC32
EXTRQ/INSERTQMOVNTSD/MOVNTSS