SSSE3

SSSE3是Intel命名的SSE3指令集的擴充,不使用新的號碼是因為SSSE3比較像是加強版的SSE3,以至於推出SSSE3之前,SSE4的定義容易被混淆。在公開Intel的Core微架構的時候,SSSE3出現在Xeon 5100與Intel Core 2行動版與桌上型處理器上。

SSSE3包含了16個新的不同於SSE3的指令。每一個都能夠運作於64位元的MMX暫存器或是128位元XMM暫存器之中。因此,有些Intel的文件表示有32個新指令。之前的SIMD指令由舊排到新依序是MMX、3DNow!(AMD開發的)、SSE、3DNow! Professional、SSE2與SSE3。

支援SSSE3指令集的處理器

  • Intel:
    • Xeon 5100系列
    • Xeon 5300系列
    • Xeon 3000系列
    • Core 2
    • Core i3
    • Core i5
    • Core i7
    • Core i9
    • Pentium Dual-Core
    • Celeron 4xx的Conroe-L
    • Celeron Dual Core系列
    • Celeron M 500系列
    • Atom
  • AMD
  • VIA

新增的指令

在以下的列表中,satsw(X)(飽和爲有符號字(saturate to signed word)的簡寫),任取有號整數X,如果X小於-32768時就代表-32768,X大於32767時就代表32767 ,其餘數值不變。在一般的Intel架構上,字節(byte)表示8位元,字(word)是16位元,而雙字(dword)是32位元;暫存器表示MMX或是XMM向量暫存器。

PSIGNB, PSIGNW, PSIGND 包裹式有符號整型取反 如果另一個暫存器中的整形爲負,那麼將目標暫存器中的數取反。
PABSB, PABSW, PABSD 包裹式絕對值 將源暫存器中的數取絕對值並放到目標暫存器中。
PALIGNR 包裹式右移 將兩個暫存器的值串起來,然後根據編碼到指令中的立即數將暫存器中的值右移。
PSHUFB 包裹式將任意字節重新排布到目的暫存器 如果源暫存器高位被置1,就把目的暫存器賦值爲0,否則根據源操作數的低4位選擇目的操作數,將其拷貝到目的操作數的相應位置。
PMULHRSW 包裹式捨入相乘 將兩個暫存器中的16位word處理成-1到1間的15位定點數(例如0x4000被處理成0.5,0xa000 處理成−0.75), 並且將他們捨入相乘。
PMADDUBSW 相乘並相加包裹式整型然後飽和 將兩個暫存器中的8位整型相乘並相加,然後飽和成有符號整型。(也就是 [a0 a1 a2 …] pmaddubsw [b0 b1 b2 …] = [satsw(a0b0+a1b1) satsw(a2b2+a3b3) …])
PHSUBW, PHSUBD 包裹式水平相減 將兩個暫存器 A = [a0 a1 a2 …] 和 B = [b0 b1 b2 …] 相減輸出 [a0−a1 a2−a3 … b0−b1 b2−b3 …]
PHSUBSW 包裹式水平相減並且飽和爲有符號字 類似PHSUBW, 但是輸出的是[satsw(a0−a1) satsw(a2−a3) … satsw(b0−b1) satsw(b2−b3) …]
PHADDW, PHADDD 包裹式有符號相加 將兩個暫存器 A = [a0 a1 a2 …] 和 B = [b0 b1 b2 …] 相加然後輸出 [a0+a1 a2+a3 … b0+b1 b2+b3 …]
PHADDSW 包裹式水平相加並且飽和爲有符號字 類似PHADDW, 但是輸出的是[satsw(a0+a1) satsw(a2+a3) … satsw(b0+b1) satsw(b2+b3) …]

參見

外部連結

  • 移動型Core 2規格書
  • Intel白皮書,敘述存在的SSSE3與新的SSE4指令集
  • 指令集的文件,列出SSSE3指令集的功能(页面存档备份,存于互联网档案馆
精簡指令集(RISC)
多媒體加速擴展指令集 (MAX)
MDMX · MIPS-3D · MSA
龙芯多媒体扩展指令集 (LoongMMI) · 龙芯向量扩展指令集(LoongSX) · 龙芯高级向量扩展指令集(LoongASX)
動態視訊指令集 (MVI)
NEON
複雜指令集(CISC)
x86/x86-64
MMX · 3DNow! · 流式單指令流多資料流擴展指令集 (SSE) · SSE2 · SSE3 · 擴展SSE3 (SSSE3) · SSE4 · SSE4a · SSE5 → XOP、F16C/CVT16、FMA(包括FMA4、FMA3) · 進階加密標準指令集 (AES) · 進階矢量擴展指令集 (AVX、AVX1.1、AVX2、AVX-512) · 位操作指令集 (ABM、BMI1、BMI2、TBM)
指令集 = 被取代或取消