Как и обещал. Ускоряем декомпрессию ZSTD на 5% и делаем его ещё быстрее.
https://github.com/facebook/zstd/pull/26895% выиграли в clang в декомпрессии, от -1% до +2% в gcc. Использование специфических инструкций, интересные рассуждения об аллокации блоков кода, их кэширование, сбор статистик бранчей на корпусе, помогаем компилятору лучше справляться с большими кусками заинлайненного кода.
Если вы когда-нибудь задавались вопросом, зачем нужно учить ассемблер, можно показать, вот зачем.
Даже если не примут (в чём я сомневаюсь), то оставим себе, мы увидели хороший прирост.