В качестве векторизатора задействована библиотека Alive2, модифицированная для синтеза и поддержки векторных инструкций, используемых на системах x86_64. Разработка продолжает развитие проекта Souper, разрабатывавшегося теми же авторами. Minotaur может находить различные оптимизации применения векторных инструкций, пропущенные штатным оптимизатором LLVM. При тестировании дополнительно оптимизированного кода библиотеки libYUV на системе с CPU Intel Cascade Lake зафиксировано максимальное повышение производительности в 1.64 раза, но в средним ускорение составило 2.2%. При тестировании набора SPEC CPU2017 ускорение составило 1.3%.

Пример оптимизации для Си-кода:
do { if (*--p == '.') *p = '_'; } while (p != name);
Для операции сравнения штатный оптимизатор LLVM сгенерирует биткод для использования инструкций AVX-2:
%1 = shufflevector %0, ‹31, 30, 29, ... , 0› %2 = icmp eq %1, ‹46, 46, 46, ... , 46› %3 = shufflevector %2, ‹31, 30, 29, ... , 0›
Minotaur исключит лишние операции shufflevector и сведёт код к одному вызову операции icmp, которая также выполняет сравнение регистра с символом «.» (ASCII-код 46), но без лишней реверсии вектора:
%1 = icmp eq %0, ‹46, 46, 46, ... , 46›
Источник: http://www.opennet.ru/opennews/art.shtml?num=59447