https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97497
rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |rsandifo at gcc dot gnu.org --- Comment #2 from rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> --- (In reply to Andreas Krebbel from comment #1) > Created attachment 49402 [details] > Proposed fix > > With the patch only regs are considered which aren't "fixed" assuming that > for fixed_regs the backend takes care of only actually using the > well-defined part of the hard regs. I don't think this is right. The principle is the same for all types of register. The idea is that a partial clobber can conservatively be treated as a read of the old value and a set of the new value. That might be suboptimal, but it should never lead to wrong code. It sounds like there's a deeper issue here. (BTW, the testcase attachment seems to be missing.)