Skip to content

[Headers][X86] Allow basic AVX512 predicate ops to be used in constexpr #158646

@RKSimon

Description

@RKSimon

The basic avx512 mask predicate intrinsics can be handled in constexpr, along with suitable test coverage

avx512fintrin.h

_mm512_int2mask
_mm512_mask2int
_mm512_kand
_mm512_kandn
_mm512_kor
_mm512_kxnor
_mm512_kxor

_kand_mask16
_kandn_mask16
_knot_mask16
_kor_mask16
_kxnor_mask16
_kxor_mask16

avx512bwintrin.h

_kand_mask32
_kandn_mask32
_knot_mask32
_kor_mask32
_kxnor_mask32
_kxor_mask32

_kadd_mask32
_kadd_mask64

avx512dqintrin.h

_kand_mask8
_kandn_mask8
_knot_mask8
_kor_mask8
_kxnor_mask8
_kxor_mask8

_kadd_mask8
_kadd_mask16

The logic operations will require handling inside VectorExprEvaluator::VisitCallExpr / InterpretBuiltin

Metadata

Metadata

Assignees

Labels

backend:X86clang:bytecodeIssues for the clang bytecode constexpr interpreterclang: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