[rdx*8] // 8D 04 D5 00 00 00 00
ret // C3
2)
mov eax, edx // 89 D0
shl << 3 // C1 E0
ret // C3
lea может оказаться быстрее, но лучше по таблицам поглядеть
Я вот тоже так думаю, latency вроде у них одинаковое, но где то слышал, что lea во многих хаках используется. LLVM, например, использует оптимизацию в качестве LEA на shl << 1, shl << 2 и shl << 3 etc
а какие у них латенси?
На старых процессорах lea всегда была быстрее. Потыкай в https://llvm.org/docs/CommandGuide/llvm-mca.html или в IACA если хочешь.
Спасибо, обязательно почитаю
лучше юзать lea, ибо mov хоть и дешёвый, но с ним получится дороже
Обсуждают сегодня