https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100775
--- Comment #2 from qinzhao at gcc dot gnu.org --- This is a bug in pass_zero_call_used_regs, when updating df after the zeroing sequence is added in the epilogue of the function, we should call "df_update_exit_block_uses" to update the reg use info in the exit block to include all the regs that have been zeroed. I think that this is a very general issue, should be fixed into both gcc12 and gcc11.