llvm/llvm-project

[Clang] VectorExprEvaluator::VisitCallExpr / InterpretBuiltin - allow SSE/AVX2 VMPSADBW intrinsics to be used in constexpr

クローズ

#157,522 opened on 2025/09/08

 (10 件のコメント) (0 件のリアクション) (0 人の担当者)C++ (10,782 件のフォーク)batch import
backend:X86clang:bytecodeclang:frontendconstexprgood first issue

Repository metrics

Stars
 (26,378 個のスター)
PR merge metrics
 (平均マージ 1d 2h) (30d で 1,000 merged PRs)

説明

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.

コントリビューターガイド