Skip to content

[Headers][X86] Allow MMX/SSE/AVX2/AVX512 integer min/max intrinsics to be used in constexpr #153153

@RKSimon

Description

@RKSimon

Now that #152278 is done, the x86 intrinsics which wrap the integer __builtin_elementwise_max/min builtins can be updated to work with constexpr

_mm_max_epi8  _mm256_max_epi8  _mm256_max_epi8  
_mm_max_epi16 _mm256_max_epi16 _mm256_max_epi16 _mm_max_pi16
_mm_max_epi32 _mm256_max_epi32 _mm256_max_epi32
_mm_max_epi64 _mm256_max_epi64 _mm256_max_epi64

_mm_max_epu8  _mm256_max_epu8  _mm256_max_epu8  
_mm_max_epu16 _mm256_max_epu16 _mm256_max_epu16 _mm_max_pu16
_mm_max_epu32 _mm256_max_epu32 _mm256_max_epu32
_mm_max_epu64 _mm256_max_epu64 _mm256_max_epu64

_mm_min_epi8  _mm256_min_epi8  _mm256_min_epi8  
_mm_min_epi16 _mm256_min_epi16 _mm256_min_epi16 _mm_min_pi16
_mm_min_epi32 _mm256_min_epi32 _mm256_min_epi32
_mm_min_epi64 _mm256_min_epi64 _mm256_min_epi64

_mm_min_epu8  _mm256_min_epu8  _mm256_min_epu8  
_mm_min_epu16 _mm256_min_epu16 _mm256_min_epu16 _mm_min_pu16
_mm_min_epu32 _mm256_min_epu32 _mm256_min_epu32
_mm_min_epu64 _mm256_min_epu64 _mm256_min_epu64

(ignore the AVX512 mask/maskz variants for now)

You can use #152296 for reference

Metadata

Metadata

Assignees

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