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

--- Comment #5 from Jeffrey A. Law <law at gcc dot gnu.org> ---
So I think I know what's going on here.  I don't think we're handling vector
modes correctly in ext-dce.

Consider something like (subreg:V2HI (reg:DI N)).  What bits are live within N?
 Right now ext-dce reports 0xffff and that in turn enables removal of an
extension.  That seems horribly wrong.  0xfffffff seems much more correct ;-) 
I need to go back to the initial review discussion which pushed us towards
using GET_MODE_INNER in various places.

Conceptually for destinations, GET_MODE_INNER is likely conservatively correct.
 But for source operands, it seems quite wrong.

Reply via email to