https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110817
--- Comment #17 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Andrew Pinski from comment #16) > Or just change ssa_name_has_boolean_range to use gimple_zero_one_valued_p > instead: > > extern bool gimple_zero_one_valued_p (tree t, tree (*valueize)(tree)); > bool > ssa_name_has_boolean_range (tree op) > { > gcc_assert (TREE_CODE (op) == SSA_NAME); > return gimple_zero_one_valued_p (op, NULL); > } > > Later on we can remove the ssa_name_has_boolean_range wrapper around > gimple_zero_one_valued_p too ... But get_nonzero_bits needs to change to use not just the cached version of the range (nonzero bits) but instead `get_range_query (cfun)->range_of_expr`. Anyways I have a fix still and this should fix other issues too ...