https://github.com/hulxv updated https://github.com/llvm/llvm-project/pull/215726
>From 439f5d640ff368657a00f19d89d2f4b6f94909d9 Mon Sep 17 00:00:00 2001 From: hulxv <[email protected]> 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) { _______________________________________________ llvm-branch-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
