Skip to content

[X86][Clang] VectorExprEvaluator::VisitCallExpr / InterpretBuiltin - allow AVX512 kmov intrinsics to be used in constexp #166975

@RKSimon

Description

@RKSimon

These wrap the __builtin_ia32_kmov* builtins, which are just NOPs used to create mask predicates

unsigned int _cvtmask16_u32 (__mmask16 a)
unsigned int _cvtmask32_u32 (__mmask32 a)
unsigned __int64 _cvtmask64_u64 (__mmask64 a)
unsigned int _cvtmask8_u32 (__mmask8 a)

__mmask64 _cvtu64_mask64 (unsigned __int64 a)
__mmask16 _cvtu32_mask16 (unsigned int a)
__mmask32 _cvtu32_mask32 (unsigned int a)
__mmask8 _cvtu32_mask8 (unsigned int a)

We still need very basic test coverage just to prove they work in constexpr

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