Skip to content

[X86][Clang] VectorExprEvaluator::VisitCallExpr / InterpretBuiltin - allow CRC32 intrinsics to be used in constexp #168881

@RKSimon

Description

@RKSimon
unsigned int _mm_crc32_u8 (unsigned int crc, unsigned char v)
unsigned int _mm_crc32_u16 (unsigned int crc, unsigned short v)
unsigned int _mm_crc32_u32 (unsigned int crc, unsigned int v)
unsigned __int64 _mm_crc32_u64 (unsigned __int64 crc, unsigned __int64 v)

https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=crc32

These should be implemented using the descriptions in the Intel Intrinsics documentation, and tested offline to confirm runtime and constexpr implementations match.

TEST_CONSTEXPR needs to be added to sse42-builtins.c

Metadata

Metadata

Assignees

Labels

backend:X86clang:bytecodeIssues for the clang bytecode constexpr interpreterclang:frontendLanguage frontend issues, e.g. anything involving "Sema"clang: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