Skip to content

[Clang] VectorExprEvaluator::VisitCallExpr / InterpretBuiltin - allow AVX512 permutex2 intrinsics to be used in constexpr #161335

@RKSimon

Description

@RKSimon
__m128i _mm_mask2_permutex2var_epi16 (__m128i a, __m128i idx, __mmask8 k, __m128i b) __m128i _mm_maskz_permutex2var_epi16 (__mmask8 k, __m128i a, __m128i idx, __m128i b) __m128i _mm_permutex2var_epi16 (__m128i a, __m128i idx, __m128i b) __m256i _mm256_mask2_permutex2var_epi16 (__m256i a, __m256i idx, __mmask16 k, __m256i b) __m256i _mm256_maskz_permutex2var_epi16 (__mmask16 k, __m256i a, __m256i idx, __m256i b) __m256i _mm256_permutex2var_epi16 (__m256i a, __m256i idx, __m256i b) __m512i _mm512_mask2_permutex2var_epi16 (__m512i a, __m512i idx, __mmask32 k, __m512i b) __m512i _mm512_maskz_permutex2var_epi16 (__mmask32 k, __m512i a, __m512i idx, __m512i b) __m512i _mm512_permutex2var_epi16 (__m512i a, __m512i idx, __m512i b) __m128i _mm_mask2_permutex2var_epi32 (__m128i a, __m128i idx, __mmask8 k, __m128i b) __m128i _mm_maskz_permutex2var_epi32 (__mmask8 k, __m128i a, __m128i idx, __m128i b) __m128i _mm_permutex2var_epi32 (__m128i a, __m128i idx, __m128i b) __m256i _mm256_mask2_permutex2var_epi32 (__m256i a, __m256i idx, __mmask8 k, __m256i b) __m256i _mm256_maskz_permutex2var_epi32 (__mmask8 k, __m256i a, __m256i idx, __m256i b) __m256i _mm256_permutex2var_epi32 (__m256i a, __m256i idx, __m256i b) __m512i _mm512_mask2_permutex2var_epi32 (__m512i a, __m512i idx, __mmask16 k, __m512i b) __m512i _mm512_maskz_permutex2var_epi32 (__mmask16 k, __m512i a, __m512i idx, __m512i b) __m512i _mm512_permutex2var_epi32 (__m512i a, __m512i idx, __m512i b) __m128i _mm_mask2_permutex2var_epi64 (__m128i a, __m128i idx, __mmask8 k, __m128i b) __m128i _mm_maskz_permutex2var_epi64 (__mmask8 k, __m128i a, __m128i idx, __m128i b) __m128i _mm_permutex2var_epi64 (__m128i a, __m128i idx, __m128i b) __m256i _mm256_mask2_permutex2var_epi64 (__m256i a, __m256i idx, __mmask8 k, __m256i b) __m256i _mm256_maskz_permutex2var_epi64 (__mmask8 k, __m256i a, __m256i idx, __m256i b) __m256i _mm256_permutex2var_epi64 (__m256i a, __m256i idx, __m256i b) __m512i _mm512_mask2_permutex2var_epi64 (__m512i a, __m512i idx, __mmask8 k, __m512i b) __m512i _mm512_maskz_permutex2var_epi64 (__mmask8 k, __m512i a, __m512i idx, __m512i b) __m512i _mm512_permutex2var_epi64 (__m512i a, __m512i idx, __m512i b) __m128i _mm_mask2_permutex2var_epi8 (__m128i a, __m128i idx, __mmask16 k, __m128i b) __m128i _mm_maskz_permutex2var_epi8 (__mmask16 k, __m128i a, __m128i idx, __m128i b) __m128i _mm_permutex2var_epi8 (__m128i a, __m128i idx, __m128i b) __m256i _mm256_mask2_permutex2var_epi8 (__m256i a, __m256i idx, __mmask32 k, __m256i b) __m256i _mm256_maskz_permutex2var_epi8 (__mmask32 k, __m256i a, __m256i idx, __m256i b) __m256i _mm256_permutex2var_epi8 (__m256i a, __m256i idx, __m256i b) __m512i _mm512_mask2_permutex2var_epi8 (__m512i a, __m512i idx, __mmask64 k, __m512i b) __m512i _mm512_maskz_permutex2var_epi8 (__mmask64 k, __m512i a, __m512i idx, __m512i b) __m512i _mm512_permutex2var_epi8 (__m512i a, __m512i idx, __m512i b) __m128d _mm_mask2_permutex2var_pd (__m128d a, __m128i idx, __mmask8 k, __m128d b) __m128d _mm_maskz_permutex2var_pd (__mmask8 k, __m128d a, __m128i idx, __m128d b) __m128d _mm_permutex2var_pd (__m128d a, __m128i idx, __m128d b) __m256d _mm256_mask2_permutex2var_pd (__m256d a, __m256i idx, __mmask8 k, __m256d b) __m256d _mm256_maskz_permutex2var_pd (__mmask8 k, __m256d a, __m256i idx, __m256d b) __m256d _mm256_permutex2var_pd (__m256d a, __m256i idx, __m256d b) __m512d _mm512_mask2_permutex2var_pd (__m512d a, __m512i idx, __mmask8 k, __m512d b) __m512d _mm512_maskz_permutex2var_pd (__mmask8 k, __m512d a, __m512i idx, __m512d b) __m512d _mm512_permutex2var_pd (__m512d a, __m512i idx, __m512d b) __m256h _mm256_permutex2var_ph (__m256h a, __m256i idx, __m256h b) __m512h _mm512_permutex2var_ph (__m512h a, __m512i idx, __m512h b) __m128 _mm_mask2_permutex2var_ps (__m128 a, __m128i idx, __mmask8 k, __m128 b) __m128 _mm_maskz_permutex2var_ps (__mmask8 k, __m128 a, __m128i idx, __m128 b) __m128 _mm_permutex2var_ps (__m128 a, __m128i idx, __m128 b) __m256 _mm256_mask2_permutex2var_ps (__m256 a, __m256i idx, __mmask8 k, __m256 b) __m256 _mm256_maskz_permutex2var_ps (__mmask8 k, __m256 a, __m256i idx, __m256 b) __m256 _mm256_permutex2var_ps (__m256 a, __m256i idx, __m256 b) __m512 _mm512_mask2_permutex2var_ps (__m512 a, __m512i idx, __mmask16 k, __m512 b) __m512 _mm512_maskz_permutex2var_ps (__mmask16 k, __m512 a, __m512i idx, __m512 b) __m512 _mm512_permutex2var_ps (__m512 a, __m512i idx, __m512 b) 

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