Micro fusion and addressing modes
Я нашел что-то неожиданное (для меня), используяIntel® Architecture Code Analyzer (МАА).
Следующая инструкция с использованием[base+index]
адресация
addps xmm1, xmmword ptr [rsi+rax*1]
не микроплавкий согласно IACA. Однако, если я использую[base+offset]
как это
addps xmm1, xmmword ptr [rsi]
МАКА сообщает, что это действительно взрыватель.
Раздел 2-11 изСправочное руководство по оптимизации Intel в качестве примера приводим следующее «микроплавких микроопераций, которые могут обрабатываться всеми декодерами»
FADD DOUBLE PTR [RDI + RSI*8]
а такжеРуководство по сборке для оптимизации Agner Fog также приводит примеры микрооперации с использованием[base+index]
адресации. См., Например, Раздел 12.2 «Тот же пример на Core2». Так какой правильный ответ?