llvm/llvm-project

[X86][Clang] VectorExprEvaluator::VisitCallExpr / InterpretBuiltin - allow SSE/AVX FP2INT conversion intrinsics to be used in constexpr

クローズ

#169,374 opened on 2025/11/24

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

Repository metrics

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

説明

Similar to #160312 except initially we should only allow EXACT/INBOUNDS and FINITE conversions - any special case (DENORMAL/INF/NAN/etc.) or loss of precision shouldn't be allowed in constexpr for now.

_mm_cvtss_si32
_mm_cvt_ss2si
_mm_cvtss_si64
_mm_cvtps_pi32
_mm_cvt_ps2pi

_mm_cvttss_si32
_mm_cvtt_ss2si
_mm_cvttss_si64
_mm_cvttps_pi32
_mm_cvtt_ps2pi

_mm_cvtps_pi16
_mm_cvtps_pi8

_mm_cvtpd_epi32
_mm_cvtsd_si32
_mm_cvttpd_epi32
_mm_cvttsd_si32

_mm_cvtpd_pi32
_mm_cvttpd_pi32

_mm_cvtsd_si64
_mm_cvttsd_si64

_mm_cvtps_epi32
_mm_cvttps_epi32

_mm256_cvtpd_epi32
_mm256_cvttpd_epi32
_mm256_cvtps_epi32
_mm256_cvttps_epi32

There are also the AVX512 variants, but the SSE/AVX are a good starting point.

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