llvm/llvm-project

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

已關閉

#157,522 建立於 2025年9月8日

 (10 則留言) (0 個反應) (0 位負責人)C++ (10,782 個分叉)batch import
backend:X86clang:bytecodeclang:frontendconstexprgood first issue

倉庫指標

星標
 (26,378 顆星)
PR 合併指標
 (PR 指標待抓取)

描述

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.

貢獻者指南