llvm/llvm-project
[Clang] VectorExprEvaluator::VisitCallExpr / InterpretBuiltin - allow SSE/AVX2 VMPSADBW intrinsics to be used in constexpr
Closed
#157,522 opened on Sep 8, 2025
backend:X86clang:bytecodeclang:frontendconstexprgood first issue
Repository metrics
- Stars
- (26,378 stars)
- PR merge metrics
- (Avg merge 1d 2h) (1,000 merged PRs in 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.