https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115817
--- Comment #3 from Georg-Johann Lay <gjl at gcc dot gnu.org> --- Setting R1 to 0 in an ISR prologue is not redundant, because R1 may be non-zero due to a variety of reasons, for example when the interrupted code uses MUL just to mention one. Moreover, on Reduced Tiny (-mmcu=avrtiny), there is LDI __zero_reg__,0 so that this PR is only for non-avrtiny. For the time being, when it really mattery to your application performance, you'll have to resort to (inline) asm + ISR_NAKED.