llvm/llvm-project
[Clang] VectorExprEvaluator::VisitCallExpr / InterpretBuiltin - allow SSE/AVX2 VMPSADBW intrinsics to be used in constexpr
Geschlossen
#157.522 geöffnet am 08.09.2025
backend:X86clang:bytecodeclang:frontendconstexprgood first issue
Repository-Metriken
- Stars
- (26.378 Sterne)
- PR-Merge-Metriken
- (Durchschn. Merge 1T 2h) (1.000 gemergte PRs in 30 T)
Beschreibung
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.