[clang] [Headers][X86] Use `__builtin_elementwise_ctlz` instead of avx512cd intrinsics. (PR #155089)

Simon Pilgrim via cfe-commits cfe-commits at lists.llvm.org
Tue Aug 26 00:59:26 PDT 2025


================
@@ -63,10 +69,9 @@ _mm512_maskz_conflict_epi32 (__mmask16 __U, __m512i __A)
                                             (__v16si)_mm512_setzero_si512());
 }
 
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_lzcnt_epi32 (__m512i __A)
-{
-  return (__m512i) __builtin_ia32_vplzcntd_512 ((__v16si) __A);
+static __inline__ __m512i __DEFAULT_FN_ATTRS_CONSTEXPR
+_mm512_lzcnt_epi32(__m512i __A) {
+  return (__m512i)__builtin_elementwise_ctlz((__v16si)__A);
----------------
RKSimon wrote:

https://clang.llvm.org/docs/LanguageExtensions.html

You need to provide the second argument as well - in this case it'd be:
```(__m512i)__builtin_elementwise_ctlz((__v16si)__A, (__16si)_mm512_set1_epi32(32));```

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


More information about the cfe-commits mailing list