------- Comment #1 from kkojima at gcc dot gnu dot org 2008-07-10 01:27 ------- Created an attachment (id=15882) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=15882&action=view) A reduced test case for -O0
Before r137639, the insn in problem was (insn 200 330 331 20 yyy.cc:181 (set (mem/c:SI (plus:SI (reg:SI 6 r6) (const_int 0 [0x0])) [0 D.2244+4 S8 A32]) (reg:SI 1 r1 [261])) 175 {movsi_ie} (nil)) and now the memory address is reloaded like as (insn 331 330 200 20 xxx.cc:181 (set (reg:SI 2 r2) (plus:SI (reg:SI 6 r6) (const_int 0 [0x0]))) 35 {*addsi3_compact} (nil)) (insn 200 331 332 20 xxx.cc:181 (set (mem/c:SI (reg:SI 2 r2) [0 D.2244+4 S8 A32]) (reg:SI 1 r1 [261])) 175 {movsi_ie} (nil)) but SH has no add instruction whose destination and source differs. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36780