https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55212
--- Comment #260 from Hans-Peter Nilsson <hp at gcc dot gnu.org> --- Random advice that some of you know, but it's also easy to forget: reorg (the delayed-branch-slot-filling pass) is a usual suspect: there be dragons. So, when suspecting wrong-code for DELAY_SLOTS such as sh, also try -fno-delayed-branch.