Каждый байт должен быть просмотрен и проверен, поэтому возможности оптимизации кажутся ограниченными. Я могу думать о двух возможностях:
Знаете ли вы что-нибудь о вероятности изменчивости? Например, есть ли основания полагать, что различия более вероятны на одном конце буфера или на другом. Вы можете проверить некоторые вводимые данные выборки статистически и посмотреть, есть ли какая-либо польза от начала сравнения на одном конце или другом.
Еще одна возможность: вы можете работать в дюймах или длинных? В C вы можете играть трюки с указателями, чтобы обрабатывать 4 смежных байта как int, а затем делать сравнения int, а не байтовые сравнения. Не очевидно, что это должно быть быстрее, чем в 4 раза больше байтовых сравнений, но, возможно, это может быть.
Это один из немногих случаев, когда даже ручная сборка может принести некоторые преимущества.