Должен ли я скомпилировать с -mssse3 при наличии кода ASM SSSE3?

У меня есть вопрос относительно компиляции сборки x264 на GCC.

В сборке x264 имеется ассемблерный код, работающий с наборами команд, такими как SSE3 и SSSE3, и по умолчанию отключена автоматическая векторизация в make-файле.

Должен ли я скомпилировать его с флагом -mssse3 в любом случае или это может привести к снижению производительности?

И означает ли -mssse3 -msse3 или SSE3 отделен от SSSE3?

1 ответ

Решение

-m<isa> Флаг сообщает компилятору, какие инструкции использовать в коде, который он генерирует. Это не влияет на встроенную сборку, которая просто передается неизмененной ассемблеру, не влияет на сборку (.s) файлы, скомпилированные отдельно. Компиляция с SSSE3 и без автоматической векторизации не имеет смысла, так как SSE - это все о векторизации, хотя она также может использоваться для выполнения скалярных операций с плавающей точкой.

Другие вопросы по тегам