此答案仅适用于英特尔处理器。
首先,从最早的到最新的所有 Intel Atom 处理器都支持 SSSE3。英特尔手册第 1.2.14 节指出:
最初的英特尔凌动处理器家族和包括英特尔凌动在内的后续产品
处理器 D2000、N2000、E2000、Z2000、C1000 系列提供
以下特点:
- ...
- 支持指令集扩展,包括 Supplemental Streaming SIMD Extensions 3 (SSSE3)。
- ...
还有手册状态表5-1:
SSSE3 扩展:英特尔至强处理器 3xxx、5100、5200、5300、5400、
5500、5600、7300、7400、7500 系列,Intel Core 2 Extreme 处理器
QX6000 系列、Intel Core 2 Duo、Intel Core 2 Quad 处理器、Intel
Pentium 双核处理器,Intel Atom 处理器。
这也与Wikipedia一致。
我不确定手册是否明确指出,如果支持 SSE4,则支持 SSSE3,但我们可以推导出来。
第 12.7.3 节讨论如何检查 SSSE3 支持:
在应用程序尝试使用 SSSE3 扩展之前,
应用程序应遵循第 11.6.2 节中说明的步骤,
“检查 SSE/SSE2 支持。”接下来,使用附加步骤
如下提供:
- 检查处理器是否支持 SSSE3(如果 CPUID.01H:ECX.SSSE3[bit 9] = 1)。
第 12.12.2 节还讨论了如何检查 SSE4.1 支持:
检查处理器是否支持 SSE4.1(如果 CPUID.01H:ECX.SSE4_1[bit
19] = 1)、SSE3(如果 CPUID.01H:ECX.SSE3[bit 0] = 1)、和 SSSE3(如果
CPUID.01H:ECX.SSSE3[bit 9] = 1).
最后第 12.12.3 节讨论了如何检查 SSE4.2 支持:
检查处理器是否支持 SSE4.2(如果 CPUID.01H:ECX.SSE4_2[bit
20] = 1)、SSE4.1(如果 CPUID.01H:ECX.SSE4_1[bit 19] = 1)、和 SSSE3(如果
CPUID.01H:ECX.SSSE3[bit 9] = 1).
如您所见,SSE4.1 和 SSE4.1 都需要支持 SSSE3。我们还可以得出结论,SSSE3 需要对 SSE2 的支持。
警告:这很可能会在未来继续存在,尽管很难确定 100%。
一个有趣的观察结果是,将支持 SSSE3 的处理器列表与支持 SSE4.1 和 SSE4.2 的处理器列表(表 5-1 和表 5-2)进行比较时,只有一个处理器,英特尔Core i7 965 处理器,即在 SSE4.2 列表中但不在 SSSE3 列表中,但该处理器实际上支持 SSSE3。不确定这是否是手册中的错误,或者更可怕的是,它不完整。
另一个有趣的观察是,对于 Atom 以外的处理器(参见上面第 1.2.14 节的引用),似乎支持 SSSE3、SSE4.1 或 SSE4.2 确实 not 一定表示支持 SSE3。我没有在手册中找到任何能让我得出这个结论的东西。同时,我不知道有什么处理器支持SSSE3、SSE4.1或SSE4.2,但不支持SSE3。
第 12.1.1 节指定了 SSSE3 中可用的寄存器:
在兼容模式下,SSE3、SSSE3 和 SSE4 的功能与它们在
保护模式。在 64 位模式下,有 8 个额外的 XMM 寄存器
无障碍。使用 REX 前缀访问寄存器 XMM8-XMM15。
第 12.7.1 节讨论了操作系统对 SSSE3 的支持:
确保您的操作系统支持 SSE/SSE2/SSE3/SSSE3
扩展名。 (操作系统对 SSE 扩展的支持意味着
对 SSE2、SSE3 和 SSSE3 的充分支持。)
所以任何需要 SSE 的操作系统都会自动支持 SSSE3。