> - if ((TARGET_ZERO_EXTEND_WITH_AND || REGNO (operands[0]) == 0) > + if ((TARGET_ZERO_EXTEND_WITH_AND || (0 & REGNO (operands[0]) == 0)) It's late, so I'm probably going to say stupid things, but ... Isn't (0 & REGNO (operands[0]) == 0) always 0? Why isn't the condition just deleted? Curious, Martin