Думаю что это очень опасное заблуждение - компилятор в большинстве случаев не может оптимизировать даже куда более простые конструкции. Возьмем для примера библиотеку хешей FEHASHMAC и посмотрим какой код генерируется для хеша blake. Мой выбор пал на fehashmac например потому что она написана на plain C, генерация кода для которого намного проще чем для C++
Как это в open-source принято под windows на visual studio она не собирается. Если вас испугали чуть более 600 ошибок при компиляции - никогда вам не удастся приспособить open-source для чего-нть полезного, бгг. Ошибки впрочем все практически одинаковы и легко фиксятся за пол-часа примерно
Рассмотрим например такую операцию как конвертацию dword из big-endian в little-endian. Традиционно такой код пишут примерно так (файл include/blake_opt32.h):
#define U8TO32_BE(p) \
(((u32)((p)[0]) << 24) | \
((u32)((p)[1]) << 16) | \
((u32)((p)[2]) << 8) | \
((u32)((p)[3]) ))
А теперь посмотрим что нам сгенерировали компиляторы (смотреть проще всего в самом начале ф-ции compress32)