При отладке я часто заходил в рукописная ассемблерная реализация memcpy и memset. Обычно они реализуются с использованием потоковых инструкций, если они доступны, развернутого цикла, оптимизированного выравнивания и т. д. Я также недавно столкнулся с этой «ошибкой» из-за оптимизации memcpy в glibc .
Возникает вопрос: почему производители оборудования (Intel, AMD) не могут оптимизировать конкретный случай
rep stos
и
rep movs
, чтобы их можно было распознать как таковые, и сделать максимально быстрое заполнение и копирование на собственной архитектуре?