Modos de micro fusão e endereçamento

Encontrei algo inesperado (para mim) usando oAnalisador de código de arquitetura Intel® (IACA).

A seguinte instrução usando[base+index] endereçamento

addps xmm1, xmmword ptr [rsi+rax*1]

não micro-fusível de acordo com a IACA. No entanto, se eu usar[base+offset] como isso

addps xmm1, xmmword ptr [rsi]

A IACA relata que se funde.

Seção 2-11 doManual de referência de otimização da Intel fornece o seguinte como exemplo "de micro-operações micro-fundidas que podem ser manipuladas por todos os decodificadores"

FADD DOUBLE PTR [RDI + RSI*8]

eManual de montagem de otimização do Agner Fog também fornece exemplos de fusão micro-op usando[base+index] endereçamento. Veja, por exemplo, a Seção 12.2 "Mesmo exemplo no Core2". Então, qual é a resposta correta?

questionAnswers(4)

yourAnswerToTheQuestion