https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112935
--- Comment #10 from Xi Ruoyao <xry111 at gcc dot gnu.org> --- For the original test case we get: x16_27 = _26 & 1; data_28 = data_15 >> 1; _29 = crc_18 >> 1; _21 = (short unsigned int) x16_27; _13 = _21 * 40961; and tree_nonzero_bits fails to _21 is either 0 or 1, for some reason.