http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54699
--- Comment #1 from Oleg Endo <olegendo at gcc dot gnu.org> 2012-09-25 11:56:53 UTC --- (In reply to comment #0) Thanks for tracing this. The mem store insn (set (subreg:SF (mem/c:DI (reg/f:SI 14 r14)) 4) (reg:SF 0 r0)) looks valid. The "movsf_ie" pattern has alternatives for this combination. However, the address in SFmode will not make it through sh_legitimate_address_p. Legitimating the tuple (address, mode) without knowing the other operand and whether it's a load or store is frustrating on SH. I will try to see what's happening there.