Должен ли я скомпилировать с -mssse3 при наличии кода ASM SSSE3?
У меня есть вопрос относительно компиляции сборки x264 на GCC.
В сборке x264 имеется ассемблерный код, работающий с наборами команд, такими как SSE3 и SSSE3, и по умолчанию отключена автоматическая векторизация в make-файле.
Должен ли я скомпилировать его с флагом -mssse3 в любом случае или это может привести к снижению производительности?
И означает ли -mssse3 -msse3 или SSE3 отделен от SSSE3?
1 ответ
-m<isa>
Флаг сообщает компилятору, какие инструкции использовать в коде, который он генерирует. Это не влияет на встроенную сборку, которая просто передается неизмененной ассемблеру, не влияет на сборку (.s
) файлы, скомпилированные отдельно. Компиляция с SSSE3 и без автоматической векторизации не имеет смысла, так как SSE - это все о векторизации, хотя она также может использоваться для выполнения скалярных операций с плавающей точкой.