Skip to content

[Headers][X86] Allow integer/fp absolute intrinsics to be used in constexpr #153556

@RKSimon

Description

@RKSimon

Once #152497 and #152705 have landed we need to update the MMX/SSE/AVX2/AVX512 absolute functions to constexpr

These wrap __builtin_elementwise_abs:

_mm_abs_pi8
_mm_abs_pi16
_mm_abs_pi32

_mm_abs_epi8  _mm256_abs_epi8  _mm512_abs_epi8
_mm_abs_epi16 _mm256_abs_epi16 _mm512_abs_epi16
_mm_abs_epi32 _mm256_abs_epi32 _mm512_abs_epi32
_mm_abs_epi64 _mm256_abs_epi64 _mm512_abs_epi64

_mm_mask_abs_epi8  _mm256_mask_abs_epi8  _mm512_mask_abs_epi8
_mm_mask_abs_epi16 _mm256_mask_abs_epi16 _mm512_mask_abs_epi16
_mm_mask_abs_epi32 _mm256_mask_abs_epi32 _mm512_mask_abs_epi32
_mm_mask_abs_epi64 _mm256_mask_abs_epi64 _mm512_mask_abs_epi64

_mm_maskz_abs_epi8  _mm256_maskz_abs_epi8  _mm512_maskz_abs_epi8
_mm_maskz_abs_epi16 _mm256_maskz_abs_epi16 _mm512_maskz_abs_epi16
_mm_maskz_abs_epi32 _mm256_maskz_abs_epi32 _mm512_maskz_abs_epi32
_mm_maskz_abs_epi64 _mm256_maskz_abs_epi64 _mm512_maskz_abs_epi64

The AVX512 fp absolute use bit logic:

_mm512_abs_pd _mm512_mask_abs_pd
_mm512_abs_ps _mm512_mask_abs_ps

_mm_abs_ph _mm256_abs_ph _mm512_abs_ph

You can use #152305 as 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