https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112789
--- Comment #10 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to gnzlbg from comment #8) > Oh! Sorry! I see this was resolved as WONTFIX. > > Does that mean that GCC, in contrast with the LLVM community - which is > always super helpful and friendly when it comes to trying to enable their > toolchains to compile SW developed with GNU - intentionally does not want to > enable the GNU toolchains to compile SW developed with clang? Wait, there is a builtin that does exactly the same as what you need/wanted to do. Is there a need for another builtin? > > If that's the case, and this is community policy, and the person who closed > this as WONTFIX speaks for the entirety of the GNU community, such that no > patches to fix this will be accepted, then thank you for your time > considering this issue and for your prompt response! Since there is a new builtin included already to do the same thing as __builtin_ctzs but in a generic fashion (added to support _BitInt and the C23 bit functions), why add another builtin that is just there. Also reading the history on __builtin_ctzs for clang and even for GCC (it exists as an x86_64 target builtin with a specific option but undocumented because it was only to be used by the intrinics), you will see clang added it as a generic builtin and didn't document the behavior or anything. The history here seems clang added it to be compatiable with GCC's internal intrinsics implementation and exposed it for all targets but didn't document it. So the situtation we are at right now, add the builtin as a non-target specific builtin for GCC just to be compatiable with clang but we have no idea what the semantics of the builtin is because it is not documented.