-
Notifications
You must be signed in to change notification settings - Fork 15.2k
Closed
[Headers][X86] Allow AVX/AVX512 generic integer conversion intrinsics to be used in constexpr#154539
Task
Copy link
Labels
backend:X86clang:headersHeaders provided by Clang, e.g. for intrinsicsHeaders provided by Clang, e.g. for intrinsicsconstexprAnything related to constant evaluationAnything related to constant evaluationgood first issuehttps://github.com/llvm/llvm-project/contributehttps://github.com/llvm/llvm-project/contribute
Description
Followup to #152315, these are all the remaining integer intrinsics I can locate that just wrap __builtin_convertvector/__builtin_shufflevector and can be easily used in constexpr with suitable test coverage
avx512fintrin.h
_mm512_mask_cvtepi8_epi32 _mm512_maskz_cvtepi8_epi32
_mm512_mask_cvtepi8_epi64 _mm512_maskz_cvtepi8_epi64
_mm512_mask_cvtepi16_epi32 _mm512_maskz_cvtepi16_epi32
_mm512_mask_cvtepi16_epi64 _mm512_maskz_cvtepi16_epi64
_mm512_mask_cvtepi32_epi64 _mm512_maskz_cvtepi32_epi64
_mm512_mask_cvtepu8_epi32 _mm512_maskz_cvtepu8_epi32
_mm512_mask_cvtepu8_epi64 _mm512_maskz_cvtepu8_epi64
_mm512_mask_cvtepu16_epi32 _mm512_maskz_cvtepu16_epi32
_mm512_mask_cvtepu16_epi64 _mm512_maskz_cvtepu16_epi64
_mm512_mask_cvtepu32_epi64 _mm512_maskz_cvtepu32_epi64
avx512vlintrin.h
_mm_cvtepi32_epi8 _mm_mask_cvtepi32_epi8 _mm_maskz_cvtepi32_epi8
_mm_cvtepi32_epi16 _mm_mask_cvtepi32_epi16 _mm_maskz_cvtepi32_epi16
_mm_cvtepi64_epi8 _mm_mask_cvtepi64_epi8 _mm_maskz_cvtepi64_epi8
_mm_cvtepi64_epi16 _mm_mask_cvtepi64_epi16 _mm_maskz_cvtepi64_epi16
_mm_cvtepi64_epi32 _mm_mask_cvtepi64_epi32 _mm_maskz_cvtepi64_epi32
_mm256_cvtepi32_epi8 _mm256_mask_cvtepi32_epi8 _mm256_maskz_cvtepi32_epi8
_mm256_cvtepi32_epi16 _mm256_mask_cvtepi32_epi16 _mm256_maskz_cvtepi32_epi16
_mm256_cvtepi64_epi8 _mm256_mask_cvtepi64_epi8 _mm256_maskz_cvtepi64_epi8
_mm256_cvtepi64_epi16 _mm256_mask_cvtepi64_epi16 _mm256_maskz_cvtepi64_epi16
_mm256_cvtepi64_epi32 _mm256_mask_cvtepi64_epi32 _mm256_maskz_cvtepi64_epi32
avx512bwintrin.h
_mm512_mask_cvtepi8_epi16 _mm512_maskz_cvtepi8_epi16
_mm512_mask_cvtepu8_epi16 _mm512_maskz_cvtepu8_epi16
avx512vlbwintrin.h
_mm_cvtepi16_epi8 _mm_mask_cvtepi16_epi8 _mm_maskz_cvtepi16_epi8
_mm256_cvtepi16_epi8 _mm256_mask_cvtepi16_epi8 _mm256_maskz_cvtepi16_epi8
I may have missed a few others :/
Metadata
Metadata
Assignees
Labels
backend:X86clang:headersHeaders provided by Clang, e.g. for intrinsicsHeaders provided by Clang, e.g. for intrinsicsconstexprAnything related to constant evaluationAnything related to constant evaluationgood first issuehttps://github.com/llvm/llvm-project/contributehttps://github.com/llvm/llvm-project/contribute