https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110701
Roger Sayle <roger at nextmovesoftware dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |roger at nextmovesoftware dot com --- Comment #5 from Roger Sayle <roger at nextmovesoftware dot com> --- nonzero_bits ((reg:DI 92),SImode) is returning 340, so combine (or more specifically simplify_and_const_int_1) believes that the AND (ZERO_EXTEND) isn't unnecessary. So it's the same nonzero_bits information that allows us to turn the XOR into IOR (in insn 16) that's incorrectly telling us the AND 340 (or AND 343, or ZERO_EXTEND) is unnecessary (in insn 17).