llvm/llvm-project

[Headers][X86] Allow AVX512 masked bitlogic intrinsics to be used in constexpr

Open

#160.556 geöffnet am 24. Sept. 2025

Auf GitHub ansehen
 (7 Kommentare) (0 Reaktionen) (1 zugewiesene Person)C++ (10.782 Forks)batch import
backend:X86clang:headersconstexprgood first issue

Repository-Metriken

Stars
 (26.378 Stars)
PR-Merge-Metriken
 (Durchschn. Merge 1T 2h) (1.000 gemergte PRs in 30 T)

Beschreibung

These appear to be missed in earlier patches like #152313 as we didn't have mask/maskz constexpr support back then

avx512fintrin.h

_mm512_maskz_and_epi32 / _mm512_maskz_and_epi64
_mm512_mask_andnot_epi32 / _mm512_mask_andnot_epi64
_mm512_maskz_andnot_epi32 / _mm512_maskz_andnot_epi64
_mm512_mask_or_epi32 / _mm512_mask_or_epi64
_mm512_maskz_or_epi32 / _mm512_maskz_or_epi64
_mm512_mask_xor_epi32 / _mm512_mask_xor_epi64
_mm512_maskz_xor_epi32 / _mm512_maskz_xor_epi64

avx512vlintrin.h

_mm_mask_and_epi32 / _mm256_mask_and_epi32
_mm_maskz_and_epi32 / _mm256_maskz_and_epi32
_mm_mask_andnot_epi32 / _mm256_mask_andnot_epi32
_mm_maskz_andnot_epi32 / _mm256_maskz_andnot_epi32
_mm_mask_or_epi32 / _mm256_mask_or_epi32
_mm_maskz_or_epi32 / _mm256_maskz_or_epi32
_mm_mask_xor_epi32 / _mm256_mask_xor_epi32
_mm_maskz_xor_epi32 / _mm256_maskz_xor_epi32

_mm_mask_and_epi64 / _mm256_mask_and_epi64
_mm_maskz_and_epi64 / _mm256_maskz_and_epi64
_mm_mask_andnot_epi64 / _mm256_mask_andnot_epi64
_mm_maskz_andnot_epi64 / _mm256_maskz_andnot_epi64
_mm_mask_or_epi64 / _mm256_mask_or_epi64
_mm_maskz_or_epi64 / _mm256_maskz_or_epi64
_mm_mask_xor_epi64 / _mm256_mask_xor_epi64
_mm_maskz_xor_epi64 / _mm256_maskz_xor_epi64

avx512dqintrin.h

_mm512_maskz_and_ps / _mm512_maskz_and_pd
_mm512_mask_andnot_ps / _mm512_mask_andnot_pd
_mm512_maskz_andnot_ps / _mm512_maskz_andnot_pd
_mm512_mask_or_ps / _mm512_mask_or_pd
_mm512_maskz_or_ps / _mm512_maskz_or_pd
_mm512_mask_xor_ps / _mm512_mask_xor_pd
_mm512_maskz_xor_ps / _mm512_maskz_xor_pd

avx512vldqintrin.h

_mm_mask_and_ps / _mm256_mask_and_ps
_mm_maskz_and_ps / _mm256_maskz_and_ps
_mm_mask_andnot_ps / _mm256_mask_andnot_ps
_mm_maskz_andnot_ps / _mm256_maskz_andnot_ps
_mm_mask_or_ps / _mm256_mask_or_ps
_mm_maskz_or_ps / _mm256_maskz_or_ps
_mm_mask_xor_ps / _mm256_mask_xor_ps
_mm_maskz_xor_ps / _mm256_maskz_xor_ps

_mm_mask_and_pd / _mm256_mask_and_pd
_mm_maskz_and_pd / _mm256_maskz_and_pd
_mm_mask_andnot_pd / _mm256_mask_andnot_pd
_mm_maskz_andnot_pd / _mm256_maskz_andnot_pd
_mm_mask_or_pd / _mm256_mask_or_pd
_mm_maskz_or_pd / _mm256_maskz_or_pd
_mm_mask_xor_pd / _mm256_mask_xor_pd
_mm_maskz_xor_pd / _mm256_maskz_xor_pd

(I may have missed a few...)

Contributor Guide