Author: Simon Pilgrim Date: 2024-11-06T18:35:03Z New Revision: 712c90e479f975f2e0c5ed4554dbf2f3a7a6d9d6
URL: https://github.com/llvm/llvm-project/commit/712c90e479f975f2e0c5ed4554dbf2f3a7a6d9d6 DIFF: https://github.com/llvm/llvm-project/commit/712c90e479f975f2e0c5ed4554dbf2f3a7a6d9d6.diff LOG: [clang][x86] Add constexpr support for _mm_cvtsi64_sd Added: Modified: clang/lib/Headers/emmintrin.h clang/test/CodeGen/X86/sse2-builtins.c Removed: ################################################################################ diff --git a/clang/lib/Headers/emmintrin.h b/clang/lib/Headers/emmintrin.h index ac965a13531222..947ad891d2c85c 100644 --- a/clang/lib/Headers/emmintrin.h +++ b/clang/lib/Headers/emmintrin.h @@ -3272,8 +3272,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cmplt_epi32(__m128i __a, /// \returns A 128-bit vector of [2 x double] whose lower 64 bits contain the /// converted value of the second operand. The upper 64 bits are copied from /// the upper 64 bits of the first operand. -static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cvtsi64_sd(__m128d __a, - long long __b) { +static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR +_mm_cvtsi64_sd(__m128d __a, long long __b) { __a[0] = __b; return __a; } diff --git a/clang/test/CodeGen/X86/sse2-builtins.c b/clang/test/CodeGen/X86/sse2-builtins.c index bb87bfd17dabec..1db40587be466d 100644 --- a/clang/test/CodeGen/X86/sse2-builtins.c +++ b/clang/test/CodeGen/X86/sse2-builtins.c @@ -610,6 +610,7 @@ __m128d test_mm_cvtsi64_sd(__m128d A, long long B) { // X64: insertelement <2 x double> %{{.*}}, double %{{.*}}, i32 0 return _mm_cvtsi64_sd(A, B); } +TEST_CONSTEXPR(match_m128d(_mm_cvtsi64_sd((__m128d){-42.0, +99.0}, 55), +55.0, +99.0)); #endif __m128i test_mm_cvtsi64_si128(long long A) { _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits