https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65249
--- Comment #13 from Kazumoto Kojima <kkojima at gcc dot gnu.org> --- Created attachment 34915 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=34915&action=edit an adhoc patch for 4.9 It pre-allocates R0 for this special case to break long R0 liveness. Ugly but it works. I'll test the similar patch on trunk with adding !sh_lra_flag guard.