архитектуры AMD64 Руководства программиста Том 1: Прикладное программирование страницы 226 говорят относительно инструкции SSE:типов данных x64 SSE
Процессора не проверяет типа данных инструкций операндов до выполнения инструкций. Он проверяет их только в точке выполнения. Например, если процессор выполняет арифметическую команду , которая принимает операнды с двойной точностью, но снабжается операндами с одинарной точностью инструкциями MOVx , процессор сначала преобразует операнды с одной точностью в двойную точность до выполнения арифметической операции , и результат будет правильным. Однако требуемое преобразование может привести к ухудшению производительности.
Я не понимаю этого; Я бы подумал, что ymm-регистры просто содержат 256 бит, которые каждая команда интерпретирует в соответствии с ожидаемыми операндами, вам нужно убедиться, что здесь есть правильные типы, а в описанном сценарии CPU будет работать на полной скорости и тихо давать неверный ответ.
Что мне не хватает?
Возможно, они ссылаются на то, что, если вы использовали 'movaps' для загрузки парных, это все равно работает? Немного странно говорить об этом так, как они это делали, тем более, что нет конверсии, но я не понимаю, что еще они могут иметь в виду. – harold