Skip to content

[X86][Clang] VectorExprEvaluator::VisitCallExpr / InterpretBuiltin - allow element extraction/insertion intrinsics to be used in constexpr #159753

@RKSimon

Description

@RKSimon

The underlying builtins for element extraction/insertion need to be updated to work with constexpr and suitable test coverage needs adding:

__builtin_ia32_vec_ext_v4hi
__builtin_ia32_vec_ext_v16qi
__builtin_ia32_vec_ext_v8hi
__builtin_ia32_vec_ext_v4si
__builtin_ia32_vec_ext_v4sf
__builtin_ia32_vec_ext_v2di
__builtin_ia32_vec_ext_v32qi
__builtin_ia32_vec_ext_v16hi
__builtin_ia32_vec_ext_v8si
__builtin_ia32_vec_ext_v4di

__builtin_ia32_vec_set_v4hi
__builtin_ia32_vec_set_v16qi
__builtin_ia32_vec_set_v8hi
__builtin_ia32_vec_set_v4si
__builtin_ia32_vec_set_v2di
__builtin_ia32_vec_set_v32qi
__builtin_ia32_vec_set_v16hi
__builtin_ia32_vec_set_v8si
__builtin_ia32_vec_set_v4di

These wrap the MMX/SSE/AVX _mm_extract_*, _mm256_extract_*, _mm_insert_* and _mm512_insert_* intrinsics with define

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