https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118892

--- Comment #11 from Tamar Christina <tnfchris at gcc dot gnu.org> ---
(In reply to Richard Sandiford from comment #10)
> (In reply to Tamar Christina from comment #9)
> > I swear that was something that was fixed.  But in any case, the simplest
> > fix is to force it into a reg again indeed.
> > 
> > I'm slightly worried that this then relies on the intermediate copy being
> > removed but such is life.
> This sounds like you're planning to use force_reg, but I agree with Andrew

No I wasn't. 

> that the patch in comment 6 is the right fix.  That will only create a new
> register if one is needed to satisfy subreg semantics.  The normal case will
> still avoid a temporary.

Yeah, but see, the thing is when this copysign patch was made you made me
change the subreg semantics to relax it.

My concern was simply that by forcing a new register here we're again back to,
at for this case, relying on reload to remove the mov. This wasn't a reliable
approach before because combine inserts those annoying moves that it doesn't
clean up.

Reply via email to