http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47419
Summary: missed 'mov (base,index,scale),reg' optimization? Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: inline-asm AssignedTo: unassig...@gcc.gnu.org ReportedBy: pl...@agmk.net following code... unsigned __attribute__((regparm(2))) asm_read_mapped_register( unsigned* address, unsigned long index ) { unsigned value; asm /* reading has side-effects in hardware */ volatile ( "movl (%1), %0" : /* output operands */ "=r" ( value ) : /* input operands */ "r" ( address + index ) : /* clobbers */ ); return value; } produces... asm_read_mapped_register: leaq (%rdi,%rsi,4), %rax movl (%rax), %eax ret is it a bug in asm inline? why the 'movl (%rdi,%rsi,4),%eax' isn't emitted?