Чтобы отключить явную векторизацию и посмотреть, что делает компилятор с авто-векторизацией, вы можете скомпилировать с помощью -DEIGEN_DONT_VECTORIZE
.Я также рекомендую компилировать с -DNDEBUG
(если вы уверены, что ваш код функционально корректен).И иногда -ffast-math
или, по крайней мере, -fassociative-math
могут помочь компилятору найти лучшие возможности оптимизации.
Хотя автоматическая векторизация, безусловно, становится лучше, я бы не ожидал ничего волшебного, хотя ( всегда сравнивайтесгенерированная сборка - и тест!)
Кроме того, компиляторы не обязаны строго использовать инструкции, соответствующие используемым встроенным функциям, если они находят функционально эквивалентные инструкции: https://godbolt.org/g/bEJNXZ