[clang] [Clang] Add __builtin_selectvector and use it for AVX512 intrinsics (PR #91306)

Phoebe Wang via cfe-commits cfe-commits at lists.llvm.org
Thu May 16 03:47:47 PDT 2024


================
@@ -77,9 +77,9 @@ _mm512_cvtne2ps_pbh(__m512 __A, __m512 __B) {
 ///    conversion of __B, and higher 256 bits come from conversion of __A.
 static __inline__ __m512bh __DEFAULT_FN_ATTRS512
 _mm512_mask_cvtne2ps_pbh(__m512bh __W, __mmask32 __U, __m512 __A, __m512 __B) {
-  return (__m512bh)__builtin_ia32_selectpbf_512((__mmask32)__U,
-                                        (__v32bf)_mm512_cvtne2ps_pbh(__A, __B),
-                                        (__v32bf)__W);
+  return (__m512bh)__builtin_selectvector(
+      (__v32bf)_mm512_cvtne2ps_pbh(__A, __B), (__v32bf)__W,
+      __builtin_bit_cast(__vecmask32, __U));
----------------
phoebewang wrote:

Can we use (__vecmask32) dirctly like `__v32bf` etc?

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


More information about the cfe-commits mailing list