Skip to content

[X86][Clang] VectorExprEvaluator::VisitCallExpr / InterpretBuiltin - allow AVX/AVX512 IFMA madd52 intrinsics to be used in constexpr #160498

@RKSimon

Description

@RKSimon

All of these can be handled in constant expressions, along with suitable test coverage, similar to #157464

__m128i _mm_madd52hi_avx_epu64 (__m128i __X, __m128i __Y, __m128i __Z)
__m256i _mm256_madd52hi_avx_epu64 (__m256i __X, __m256i __Y, __m256i __Z)
__m128i _mm_madd52hi_epu64 (__m128i a, __m128i b, __m128i c)
__m128i _mm_madd52hi_epu64 (__m128i __X, __m128i __Y, __m128i __Z)
__m128i _mm_mask_madd52hi_epu64 (__m128i a, __mmask8 k, __m128i b, __m128i c)
__m128i _mm_maskz_madd52hi_epu64 (__mmask8 k, __m128i a, __m128i b, __m128i c)
__m256i _mm256_madd52hi_epu64 (__m256i a, __m256i b, __m256i c)
__m256i _mm256_madd52hi_epu64 (__m256i __X, __m256i __Y, __m256i __Z)
__m256i _mm256_mask_madd52hi_epu64 (__m256i a, __mmask8 k, __m256i b, __m256i c)
__m256i _mm256_maskz_madd52hi_epu64 (__mmask8 k, __m256i a, __m256i b, __m256i c)
__m512i _mm512_madd52hi_epu64 (__m512i a, __m512i b, __m512i c)
__m512i _mm512_mask_madd52hi_epu64 (__m512i a, __mmask8 k, __m512i b, __m512i c)
__m512i _mm512_maskz_madd52hi_epu64 (__mmask8 k, __m512i a, __m512i b, __m512i c)
__m128i _mm_madd52lo_avx_epu64 (__m128i __X, __m128i __Y, __m128i __Z)
__m256i _mm256_madd52lo_avx_epu64 (__m256i __X, __m256i __Y, __m256i __Z)
__m128i _mm_madd52lo_epu64 (__m128i a, __m128i b, __m128i c)
__m128i _mm_madd52lo_epu64 (__m128i __X, __m128i __Y, __m128i __Z)
__m128i _mm_mask_madd52lo_epu64 (__m128i a, __mmask8 k, __m128i b, __m128i c)
__m128i _mm_maskz_madd52lo_epu64 (__mmask8 k, __m128i a, __m128i b, __m128i c)
__m256i _mm256_madd52lo_epu64 (__m256i a, __m256i b, __m256i c)
__m256i _mm256_madd52lo_epu64 (__m256i __X, __m256i __Y, __m256i __Z)
__m256i _mm256_mask_madd52lo_epu64 (__m256i a, __mmask8 k, __m256i b, __m256i c)
__m256i _mm256_maskz_madd52lo_epu64 (__mmask8 k, __m256i a, __m256i b, __m256i c)
__m512i _mm512_madd52lo_epu64 (__m512i a, __m512i b, __m512i c)
__m512i _mm512_mask_madd52lo_epu64 (__m512i a, __mmask8 k, __m512i b, __m512i c)
__m512i _mm512_maskz_madd52lo_epu64 (__mmask8 k, __m512i a, __m512i b, __m512i c)

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