@@ -104,10 +104,16 @@ countr_zero(T value) {
104104}
105105#if __has_builtin(__builtin_ctzs)
106106ADD_SPECIALIZATION (countr_zero, unsigned short , __builtin_ctzs)
107- #endif
107+ #endif // __has_builtin(__builtin_ctzs)
108+ #if __has_builtin(__builtin_ctz)
108109ADD_SPECIALIZATION (countr_zero, unsigned int , __builtin_ctz)
110+ #endif // __has_builtin(__builtin_ctz)
111+ #if __has_builtin(__builtin_ctzl)
109112ADD_SPECIALIZATION (countr_zero, unsigned long , __builtin_ctzl)
113+ #endif // __has_builtin(__builtin_ctzl)
114+ #if __has_builtin(__builtin_ctzll)
110115ADD_SPECIALIZATION (countr_zero, unsigned long long , __builtin_ctzll)
116+ #endif // __has_builtin(__builtin_ctzll)
111117#endif // __has_builtin(__builtin_ctzg)
112118
113119// / Count number of 0's from the most significant bit to the least
@@ -143,10 +149,16 @@ countl_zero(T value) {
143149}
144150#if __has_builtin(__builtin_clzs)
145151ADD_SPECIALIZATION (countl_zero, unsigned short , __builtin_clzs)
146- #endif
152+ #endif // __has_builtin(__builtin_clzs)
153+ #if __has_builtin(__builtin_clz)
147154ADD_SPECIALIZATION (countl_zero, unsigned int , __builtin_clz)
155+ #endif // __has_builtin(__builtin_clz)
156+ #if __has_builtin(__builtin_clzl)
148157ADD_SPECIALIZATION (countl_zero, unsigned long , __builtin_clzl)
158+ #endif // __has_builtin(__builtin_clzl)
159+ #if __has_builtin(__builtin_clzll)
149160ADD_SPECIALIZATION (countl_zero, unsigned long long , __builtin_clzll)
161+ #endif // __has_builtin(__builtin_clzll)
150162#endif // __has_builtin(__builtin_clzg)
151163
152164#undef ADD_SPECIALIZATION
@@ -283,11 +295,17 @@ popcount(T value) {
283295 [[nodiscard]] LIBC_INLINE constexpr int popcount<TYPE>(TYPE value) { \
284296 return BUILTIN (value); \
285297 }
298+ #if __has_builtin(__builtin_popcount)
286299ADD_SPECIALIZATION (unsigned char , __builtin_popcount)
287300ADD_SPECIALIZATION(unsigned short , __builtin_popcount)
288301ADD_SPECIALIZATION(unsigned , __builtin_popcount)
302+ #endif // __builtin_popcount
303+ #if __has_builtin(__builtin_popcountl)
289304ADD_SPECIALIZATION (unsigned long , __builtin_popcountl)
305+ #endif // __builtin_popcountl
306+ #if __has_builtin(__builtin_popcountll)
290307ADD_SPECIALIZATION (unsigned long long , __builtin_popcountll)
308+ #endif // __builtin_popcountll
291309#endif // __builtin_popcountg
292310#undef ADD_SPECIALIZATION
293311
0 commit comments