llvm/llvm-project

[Clang] VectorExprEvaluator::VisitCallExpr / InterpretBuiltin - allow SSE/AVX2 VMPSADBW intrinsics to be used in constexpr

Fechada

#157.522 aberto em 8 de set. de 2025

 (10 comentários) (0 reação) (0 responsável)C++ (10.782 forks)batch import
backend:X86clang:bytecodeclang:frontendconstexprgood first issue

Métricas do repositório

Stars
 (26.378 estrelas)
Métricas de merge de PR
 (Mesclagem média 1d 2h) (1.000 fundiu PRs em 30d)

Description

The horizontal sum of difference intrinsics can all be used in constexpr with suitable handling of the builtins inside VectorExprEvaluator::VisitCallExpr and InterBuiltin.cpp, and testing in the relevent *-builtins.c files.

_mm_mpsadbw_epu8 _mm256_mpsadbw_epu8

These intrinsics can be tricky to correctly evaluate, so I'd recommend previous knowledge of SSE/AVX instructions is required

Care needs to be taken with the signed/unsigned extension of the arguments - we might need to adjust the builtin signatures.

Guia do colaborador