https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83496
--- Comment #13 from Segher Boessenkool <segher at gcc dot gnu.org> --- There are *two* conditional branches leading to that "return 1". After dbr one is a delay-slot seq, and the other has lost the assignment of the return value.