Supplemental Streaming SIMD Extension 3 ( SSSE3 ) je označení, které Intel přidělil čtvrtému rozšíření instrukční sady. Předchozí byl SSE3 a Intel místo zvýšení čísla rozšíření přidal další „S“, možná proto, že považoval SSSE3 za jednoduchý doplněk k SSE3. Často, než se začalo používat oficiální označení SSSE3, byly tyto nové příkazy nazývány SSE4. Byly také kódově označeny Tejas New Instructions (TNI) a Merom New Instructions (MNI) podle procesorů, kde Intel poprvé zamýšlel podporovat tyto nové instrukce. SSSE3, představený v Intel Core Microarchitecture, je dostupný v řadě procesorů Xeon 5100 (verze pro servery a pracovní stanice), stejně jako procesory Intel Core 2 (verze pro notebooky a stolní počítače) a Intel Atom.
Novinkou v SSSE3, ve srovnání s SSE3, je 16 jedinečných zabalených celočíselných instrukcí. Každý z nich umí pracovat jak s 64bitovými (MMX), tak 128bitovými (XMM) registry, Intel proto ve svých materiálech odkazuje na 32 nových příkazů.
Každé výsledkové pole je absolutní hodnota odpovídajícího pole z src1. Ve skutečnosti se jedná o stejné operace PSIGNB, PSIGNH, PSIGNW, přičemž obě mají stejný registr.
Každé výsledkové pole je součinem pole v src1 krát {-1,0,1} v závislosti na znaménku odpovídajícího pole v src2 (vynásobení 0, když je pole v src2 nula).
Se dvěma registry operandu se zachází jako s jednou mezilehlou hodnotou bez znaménka o dvojnásobné velikosti, ze které je extrahována 64-/128bitová hodnota počínaje bajtem uvedeným v argumentu přímé konstanty příkazu.
Bytová permutace, každý výsledný bajt je nějaký bajt z prvního argumentu, určený odpovídajícím bytem z druhého argumentu (pokud je bajt záporný, pak se do výsledného bajtu zapíše nula, jinak se jako bity použijí nízké 3 nebo 4 bity číslo bajtu v prvním argumentu).
S argumenty A a B se zachází jako s vektory 16bitových čísel s pevnou řádovou čárkou reprezentovaných v rozsahu [-1,+1) (tj. 0x4000 je 0,5 a 0xa000 je -0,75 atd.), které jsou vzájemně vynásobeny správným zaokrouhlování.
Provede se bajtové násobení vektorů A a B, mezilehlé 16bitové výsledky se sčítají ve dvojicích se saturací a jsou uvedeny jako výsledek.
Horizontální odečítání celých 16/32bitových polí.
Horizontální odečítání celých 16bitových polí se saturací.
Horizontální sčítání celých 16/32bitových polí.
Horizontální sčítání celých 16bitových polí se saturací.
instrukční sady procesoru x86 | |
---|---|
Intel | |
AMD | |
Cyrix |