Skip to content

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

@RKSimon

Description

@RKSimon

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...)

Metadata

Metadata

Assignees

Labels

backend:X86clang:headersHeaders provided by Clang, e.g. for intrinsicsconstexprAnything related to constant evaluationgood first issuehttps://github.com/llvm/llvm-project/contribute

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions