https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109011
--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Oh, and optabs.cc expands ctz using clz as (bitsize-1) - .CLZ(x & -x) which is one fewer operations if andn isn't supported, on the other side is undefined at zero (so could be used for __builtin_ctz but not for .CTZ if CTZ_UNDEFINED_AT_ZERO is 2.