[llvm-branch-commits] [libc] [libc][builtins][test] missed int-floating conversion tests (PR #215726)
via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Wed Aug 12 01:11:25 PDT 2026
https://github.com/hulxv updated https://github.com/llvm/llvm-project/pull/215726
>From 87f708c1c9c79292bfaa7b3e9cd890c007ce856e Mon Sep 17 00:00:00 2001
From: hulxv <hulxxv at gmail.com>
Date: Sun, 9 Aug 2026 01:58:32 +0300
Subject: [PATCH] [libc][builtins][test] missed int-floating conversion tests
---
libc/test/shared/shared_builtins_test.cpp | 66 +++++++++++++++++++++++
1 file changed, 66 insertions(+)
diff --git a/libc/test/shared/shared_builtins_test.cpp b/libc/test/shared/shared_builtins_test.cpp
index d2387bf7db0f8..26f9670ed38ba 100644
--- a/libc/test/shared/shared_builtins_test.cpp
+++ b/libc/test/shared/shared_builtins_test.cpp
@@ -39,6 +39,72 @@ TEST(LlvmLibcSharedBuiltinsTest, QuadPrecisionArithmtic) {
}
#endif // LIBC_TYPES_HAS_NATIVE_FLOAT128
+#endif // LIBC_TYPES_HAS_FLOAT128
+
+TEST(LlvmLibcSharedBuiltinsTest, FloatToIntConversion) {
+ EXPECT_EQ(int64_t(12), shared::fixsfdi(12.5f));
+ EXPECT_EQ(int32_t(12), shared::fixsfsi(12.5f));
+#ifdef LIBC_TYPES_HAS_INT128
+ EXPECT_EQ(static_cast<__int128_t>(12), shared::fixsfti(12.5f));
+#endif // LIBC_TYPES_HAS_INT128
+}
+
+TEST(LlvmLibcSharedBuiltinsTest, FloatToUIntConversion) {
+ EXPECT_EQ(uint64_t(12), shared::fixunssfdi(12.5f));
+ EXPECT_EQ(uint32_t(12), shared::fixunssfsi(12.5f));
+#ifdef LIBC_TYPES_HAS_INT128
+ EXPECT_EQ(static_cast<__uint128_t>(12), shared::fixunssfti(12.5f));
+#endif // LIBC_TYPES_HAS_INT128
+}
+
+TEST(LlvmLibcSharedBuiltinsTest, DoubleToIntConversion) {
+ EXPECT_EQ(int64_t(12), shared::fixdfdi(12.5));
+ EXPECT_EQ(int32_t(12), shared::fixdfsi(12.5));
+#ifdef LIBC_TYPES_HAS_INT128
+ EXPECT_EQ(static_cast<__int128_t>(12), shared::fixdfti(12.5));
+#endif // LIBC_TYPES_HAS_INT128
+}
+
+TEST(LlvmLibcSharedBuiltinsTest, DoubleToUIntConversion) {
+ EXPECT_EQ(uint64_t(12), shared::fixunsdfdi(12.5));
+ EXPECT_EQ(uint32_t(12), shared::fixunsdfsi(12.5));
+#ifdef LIBC_TYPES_HAS_INT128
+ EXPECT_EQ(static_cast<__uint128_t>(12), shared::fixunsdfti(12.5));
+#endif // LIBC_TYPES_HAS_INT128
+}
+
+TEST(LlvmLibcSharedBuiltinsTest, IntToDoubleConversion) {
+ EXPECT_FP_EQ(12.0, shared::floatdidf(int64_t(12)));
+ EXPECT_FP_EQ(12.0, shared::floatsidf(int32_t(12)));
+#ifdef LIBC_TYPES_HAS_INT128
+ EXPECT_FP_EQ(12.0, shared::floattidf(static_cast<__int128_t>(12)));
+#endif // LIBC_TYPES_HAS_INT128
+}
+
+TEST(LlvmLibcSharedBuiltinsTest, UIntToDoubleConversion) {
+ EXPECT_FP_EQ(12.0, shared::floatundidf(uint64_t(12)));
+ EXPECT_FP_EQ(12.0, shared::floatunsidf(uint32_t(12)));
+#ifdef LIBC_TYPES_HAS_INT128
+ EXPECT_FP_EQ(12.0, shared::floatuntidf(static_cast<__uint128_t>(12)));
+#endif // LIBC_TYPES_HAS_INT128
+}
+
+TEST(LlvmLibcSharedBuiltinsTest, IntToFloatConversion) {
+ EXPECT_FP_EQ(12.0f, shared::floatdisf(int64_t(12)));
+ EXPECT_FP_EQ(12.0f, shared::floatsisf(int32_t(12)));
+#ifdef LIBC_TYPES_HAS_INT128
+ EXPECT_FP_EQ(12.0f, shared::floattisf(static_cast<__int128_t>(12)));
+#endif // LIBC_TYPES_HAS_INT128
+}
+
+TEST(LlvmLibcSharedBuiltinsTest, UIntToFloatConversion) {
+ EXPECT_FP_EQ(12.0f, shared::floatundisf(uint64_t(12)));
+ EXPECT_FP_EQ(12.0f, shared::floatunsisf(uint32_t(12)));
+#ifdef LIBC_TYPES_HAS_INT128
+ EXPECT_FP_EQ(12.0f, shared::floatuntisf(static_cast<__uint128_t>(12)));
+#endif // LIBC_TYPES_HAS_INT128
+}
+
#ifdef LIBC_TYPES_HAS_FLOAT128
TEST(LlvmLibcSharedBuiltinsTest, IntToQuadConversion) {
More information about the llvm-branch-commits
mailing list