http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55108



Richard Earnshaw <rearnsha at gcc dot gnu.org> changed:



           What    |Removed                     |Added

----------------------------------------------------------------------------

             Status|UNCONFIRMED                 |NEW

   Last reconfirmed|                            |2012-10-30

     Ever Confirmed|0                           |1

      Known to fail|                            |4.6.3, 4.7.0



--- Comment #2 from Richard Earnshaw <rearnsha at gcc dot gnu.org> 2012-10-30 
14:13:15 UTC ---

Confirmed.  It seems the compiler is incorrectly eliminating some zero-extend

operations.  We have



Ra:SI = Rx:SI >> 8

Rb:QI = subreg:QI (Ra:SI 0)

Rc:SI = subreg:SI (Rb:QI 0)

Rd:SI = Rc:SI & 255



cse1 pass then decides incorrectly (and presumably because of the paradoxical

subreg) that Rd == Rc and discards the mask operation.



Also seen in 4.7, haven't been able to test trunk.

Reply via email to