llvm/llvm-project
[Clang] VectorExprEvaluator::VisitCallExpr / InterpretBuiltin - allow SSE/AVX2 VMPSADBW intrinsics to be used in constexpr
Chiusa
#157.522 aperta il 8 set 2025
backend:X86clang:bytecodeclang:frontendconstexprgood first issue
Metriche repository
- Star
- (26.378 stelle)
- Metriche merge PR
- (Merge medio 1g 2h) (1000 PR mergiate in 30 g)
Descrizione
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.