Этот ответ предназначен только для процессоров Intel.
Во-первых, все процессоры Intel Atom от самых ранних до самых последних поддерживают SSSE3. В разделе 1.2.14 руководства Intel говорится:
Первоначальное семейство процессоров Intel Atom и последующие поколения, включая процессоры Intel Atom серии D2000, N2000, E2000, Z2000, C1000, обеспечивают следующие функции:
- ...
- Поддержка расширений набора инструкций, включая дополнительные расширения SIMD для потоковой передачи 3 (SSSE3).
- ...
А также в таблице 5-1 руководства указано:
Расширения SSSE3: процессор Intel Xeon 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 Dual- Core процессоры, процессоры Intel Atom.
Это также согласуется с Википедией.
Я не уверен, прямо ли в руководстве указано, что если поддерживается SSE4, то поддерживается и SSSE3, но мы можем это вывести.
В разделе 12.7.3 обсуждается, как проверить поддержку SSSE3:
Прежде чем приложение попытается использовать расширения SSSE3, оно должно выполнить шаги, описанные в Раздел 11.6.2, «Проверка поддержки SSE / SSE2». Затем используйте дополнительный шаг, указанный ниже:
- Убедитесь, что процессор поддерживает SSSE3 (если CPUID.01H: ECX.SSSE3 [бит 9] = 1).
также в Разделе 12.12.2 обсуждается, как проверить поддержку SSE4.1:
Убедитесь, что процессор поддерживает SSE4.1 (если CPUID.01H: ECX.SSE4_1 [бит 19] = 1), SSE3 (если CPUID.01H: ECX.SSE3 [бит 0] = 1), и SSSE3 (если CPUID.01H: ECX.SSSE3 [бит 9] = 1).
и, наконец, в Разделе 12.12.3 обсуждается, как проверить поддержку SSE4.2:
Убедитесь, что процессор поддерживает SSE4.2 (если CPUID.01H: ECX.SSE4_2 [бит 20] = 1), SSE4.1 (если CPUID.01H: ECX.SSE4_1 [бит 19] = 1), и SSSE3 (если CPUID.01H: ECX.SSSE3 [бит 9] = 1).
Как видите, и SSE4.1, и SSE4.1 требуют поддержки SSSE3. Также можно сделать вывод, что SSSE3 требует поддержки SSE2.
ПРЕДОСТЕРЕЖЕНИЕ: скорее всего, это сохранится и в будущем, хотя трудно быть уверенным на 100%.
Однако одно интересное наблюдение заключается в том, что при сравнении списка процессоров, поддерживающих SSSE3, со списками тех, которые поддерживают SSE4.1 и SSE4.2 (Таблица 5-1 и Таблица 5-2), есть только один процессор, Intel Core i7 965. процессор, который находится в списке SSE4.2, но не SSSE3, но процессор фактически поддерживает SSSE3. Не уверен, является ли это ошибкой в руководстве или, что ужасно, оно неполное.
Еще одно интересное наблюдение: для процессоров, отличных от Atom (см. Цитату из Раздела 1.2.14 выше), кажется, что поддержка SSSE3, SSE4.1 или SSE4.2 не обязательно означает, что SSE3 поддерживается. Я не нашел в руководстве ничего, что позволило бы мне сделать такой вывод. В то же время я не знаю ни одного процессора, который поддерживает SSSE3, SSE4.1 или SSE4.2, но не SSE3.
Раздел 12.1.1 определяет, какие регистры доступны в SSSE3:
В режиме совместимости SSE3, SSSE3 и SSE4 работают так же, как и в защищенном режиме. В 64-битном режиме доступны восемь дополнительных регистров XMM. Доступ к регистрам XMM8-XMM15 осуществляется с помощью префиксов REX.
В разделе 12.7.1 обсуждается поддержка ОС для SSSE3:
Убедитесь, что ваша операционная система поддерживает расширения SSE / SSE2 / SSE3 / SSSE3. (Поддержка расширений SSE операционной системой подразумевает достаточную поддержку SSE2, SSE3 и SSSE3.)
Таким образом, любая ОС, для которой требуется SSE, автоматически поддерживает SSSE3.
person
Hadi Brais
schedule
08.03.2018