------- Comment #2 from bonzini at gnu dot org 2009-07-14 10:51 ------- Here combine simplifies the zero extension from
(lshiftrt:SI (ashift:SI (subreg:SI (reg:QI 138) 0) (const_int 24 [0x18])) (const_int 24 [0x18])) to (ne:SI (subreg:SI (reg:QI 138)). From there it cannot derive anymore that nonzero_bits of the operand is 1 and thus the NE is redundant. But shouldn't the subreg actually be a ZERO_EXTEND? -- bonzini at gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |rsandifo at gcc dot gnu dot | |org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39715