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

wilco at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2017-05-15
                 CC|                            |wilco at gcc dot gnu.org
     Ever confirmed|0                           |1

--- Comment #2 from wilco at gcc dot gnu.org ---
(In reply to Richard Earnshaw from comment #1)
> I suspect this has just revealed a latent issue.
> 
> How can it be right for the register allocator to assign the same register
> to *two* different output operands?

The problem is that lra-remat doesn't check whether scratch registers have been
allocated to the same register as the destination when rematerializing an
instruction into a move:

smull r8, r2, r1, r3  (r8 is a scratch, r2 is dest)
mov r8, r2
->
smull r8, r8, r1, r3

Reply via email to