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
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.