https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114639
--- Comment #9 from Uroš Bizjak <ubizjak at gmail dot com> --- (In reply to Andrew Pinski from comment #2) > /* If we didn't see a full return value copy, verify that there > is a plausible reason for this. If some, but not all of the > return register is likely spilled, we can expect that there > is a copy for the likely spilled part. */ This part of the mode-switching pass is a real PITA. The trick here is with the calculation of forced_late_switch (but please see N.b. comment at the beginning of the function where some failed assumptions are described).