http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49781
--- Comment #3 from Uros Bizjak <ubizjak at gmail dot com> 2011-08-03 07:00:12 UTC --- Basically, we should allow ZERO_EXTEND in address: Trying 117 -> 118: Failed to match this instruction: (set (mem:SI (zero_extend:DI (plus:SI (mult:SI (reg/v:SI 150 [ n ]) (const_int 4 [0x4])) (reg/f:SI 189))) [2 MEM[symbol: heap, index: D.2768_17, offset: 4B]+0 S4 A32]) (reg/v:SI 150 [ n ])) We should emit addr32 in this case.