diff --git a/libc/src/__support/FPUtil/generic/div.h b/libc/src/__support/FPUtil/generic/div.h index f0e405772e9fa..0891ae010ce20 100644 --- a/libc/src/__support/FPUtil/generic/div.h +++ b/libc/src/__support/FPUtil/generic/div.h @@ -78,7 +78,7 @@ div(InType x, InType y) { } if (y_bits.is_inf()) - return OutFPBits::inf(result_sign).get_val(); + return OutFPBits::zero(result_sign).get_val(); if (y_bits.is_zero()) { if (x_bits.is_zero()) { diff --git a/libc/test/src/math/smoke/DivTest.h b/libc/test/src/math/smoke/DivTest.h index d8074797449e9..ff82f68827a12 100644 --- a/libc/test/src/math/smoke/DivTest.h +++ b/libc/test/src/math/smoke/DivTest.h @@ -47,6 +47,11 @@ class DivTest : public LIBC_NAMESPACE::testing::FEnvSafeTest { EXPECT_FP_EQ(neg_inf, func(in.neg_inf, in.zero)); EXPECT_FP_EQ(neg_inf, func(in.inf, in.neg_zero)); EXPECT_FP_EQ(inf, func(in.neg_inf, in.neg_zero)); + EXPECT_FP_EQ(zero, func(in.min_normal, in.inf)); + EXPECT_FP_EQ(zero, func(in.zero, in.inf)); + EXPECT_FP_EQ(zero, func(in.neg_zero, in.neg_inf)); + EXPECT_FP_EQ(neg_zero, func(in.min_normal, in.neg_inf)); + EXPECT_FP_EQ(neg_zero, func(in.zero, in.neg_inf)); } void test_division_by_zero(DivFunc func) {