[clang] [Clang] Support generic bit counting builtins on fixed boolean vectors (PR #154203)

Joseph Huber via cfe-commits cfe-commits at lists.llvm.org
Thu Aug 21 11:18:03 PDT 2025


================
@@ -4213,7 +4213,7 @@ such as ``unsigned __int128`` and C23 ``unsigned _BitInt(N)``.
 
 ``__builtin_clzg`` (respectively ``__builtin_ctzg``) returns the number of
 leading (respectively trailing) 0 bits in the first argument. The first argument
-can be of any unsigned integer type.
+can be of any unsigned integer type or fixed boolean vector.
----------------
jhuber6 wrote:

Counting bits in a mask is relatively common, the immediate use-case I have is implementing `strlen` where you want to do a wide read, compare to a vector full of `'\0'`, and then get the offset of the first match. This is what the C++26 parallelism proposal for SIMD calls 'find_first_set(simd_mask)`.

https://github.com/llvm/llvm-project/pull/154203


More information about the cfe-commits mailing list