https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115337
--- Comment #10 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Jakub Jelinek <ja...@gcc.gnu.org>: https://gcc.gnu.org/g:591d30c5c97e757f63ce0d99ae9a3dbe8c75a50a commit r15-1014-g591d30c5c97e757f63ce0d99ae9a3dbe8c75a50a Author: Jakub Jelinek <ja...@redhat.com> Date: Tue Jun 4 16:16:49 2024 +0200 ranger: Improve CLZ fold_range [PR115337] cfn_ctz::fold_range includes special cases for the case where .CTZ has two arguments and so is well defined at zero, and the second argument is equal to prec or -1, but cfn_clz::fold_range does that only for the prec case. -1 is fairly common as well though, because the <stdbit.h> builtins do use it now, so I think it is worth special casing that. If we don't know anything about the argument, the difference for .CLZ (arg, -1) is that previously the result was varying, now it will be [-1, prec-1]. If we knew arg can't be zero, it used to be optimized before as well into e.g. [0, prec-1] or similar. 2024-06-04 Jakub Jelinek <ja...@redhat.com> PR tree-optimization/115337 * gimple-range-op.cc (cfn_clz::fold_range): For m_gimple_call_internal_p handle as a special case also second argument of -1 next to prec.