On Wed, Jun 16, 2021 at 01:51:16PM -0500, Aaron Sawdey wrote: > The add-logical and add-add fusion patterns all have constraint > alternatives "=0,1,&r,r" for the output (3). The inputs 0 and 1 > are used in the first fusion instruction and then either may be > reused as a temp for the output of the first insn which is > input to the second. However, if input 2 is the same as 0 or 1, > it gets clobbered unexpectedly. So the first 2 alts need to be > "=&0,&1,&r,r" instead to indicate that in alts 0 and 1, the > register used for 3 is earlyclobber, hence can't be the same as > input 2.
> * config/rs6000/genfusion.pl (gen_logical_addsubf): Add > earlyclobber to alts 0/1. You can break that line later, after "to" even. Just FYI :-) This is okay for trunk and backport to 10. Thanks! Segher