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

 (10 Kommentare) (0 Reaktionen) (0 zugewiesene Personen)C++ (10.782 Forks)batch import
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.

Contributor Guide