Skip to content

[Headers][X86] Allow AVX/AVX512 generic integer conversion intrinsics to be used in constexpr #154539

@RKSimon

Description

@RKSimon

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

Labels

backend:X86clang: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