https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110817
--- Comment #18 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Andrew Pinski from comment #17) > (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 ... Except that does not work as we remove now during evrp too many __builtin_unreachable's. So back to drawing board for a second.