77// ===----------------------------------------------------------------------===//
88
99#include " hdr/fenv_macros.h"
10+ #include " src/__support/FPUtil/cast.h"
1011#include " src/errno/libc_errno.h"
1112#include " src/math/tanhf16.h"
1213#include " test/UnitTest/FPMatcher.h"
@@ -23,11 +24,11 @@ TEST_F(LlvmLibcTanhf16Test, SpecialNumbers) {
2324 EXPECT_FP_EQ_WITH_EXCEPTION (aNaN, LIBC_NAMESPACE::tanhf16 (sNaN ), FE_INVALID);
2425 EXPECT_MATH_ERRNO (0 );
2526
26- EXPECT_FP_EQ_ALL_ROUNDING (static_cast <float16>(1.0 ),
27+ EXPECT_FP_EQ_ALL_ROUNDING (LIBC_NAMESPACE::fputil::cast <float16>(1.0 ),
2728 LIBC_NAMESPACE::tanhf16 (inf));
2829 EXPECT_MATH_ERRNO (0 );
2930
30- EXPECT_FP_EQ_ALL_ROUNDING (static_cast <float16>(-1.0 ),
31+ EXPECT_FP_EQ_ALL_ROUNDING (LIBC_NAMESPACE::fputil::cast <float16>(-1.0 ),
3132 LIBC_NAMESPACE::tanhf16 (neg_inf));
3233 EXPECT_MATH_ERRNO (0 );
3334
@@ -41,91 +42,102 @@ TEST_F(LlvmLibcTanhf16Test, SpecialNumbers) {
4142TEST_F (LlvmLibcTanhf16Test, ResultNearBounds) {
4243 LIBC_NAMESPACE::libc_errno = 0 ;
4344
44- EXPECT_FP_EQ_WITH_EXCEPTION (static_cast <float16>(1.0 ),
45+ EXPECT_FP_EQ_WITH_EXCEPTION (LIBC_NAMESPACE::fputil::cast <float16>(1.0 ),
4546 LIBC_NAMESPACE::tanhf16 (max_normal), FE_INEXACT);
4647 EXPECT_MATH_ERRNO (0 );
4748
48- EXPECT_FP_EQ_WITH_EXCEPTION (static_cast <float16>(-1.0 ),
49+ EXPECT_FP_EQ_WITH_EXCEPTION (LIBC_NAMESPACE::fputil::cast <float16>(-1.0 ),
4950 LIBC_NAMESPACE::tanhf16 (neg_max_normal),
5051 FE_INEXACT);
5152 EXPECT_MATH_ERRNO (0 );
5253
5354 // round(atanh(1 - 2^-11), HP, RU);
54- float16 x = static_cast <float16>(0x1 .0a4p+2 );
55+ float16 x = LIBC_NAMESPACE::fputil::cast <float16>(0x1 .0a4p+2 );
5556
5657 EXPECT_FP_EQ_WITH_EXCEPTION_ROUNDING_NEAREST (
57- static_cast <float16>(0x1 .ffcp -1 ), LIBC_NAMESPACE::tanhf16 (x), FE_INEXACT);
58+ LIBC_NAMESPACE::fputil::cast<float16>(0x1 .ffcp -1 ),
59+ LIBC_NAMESPACE::tanhf16 (x), FE_INEXACT);
5860 EXPECT_MATH_ERRNO (0 );
5961
6062 EXPECT_FP_EQ_WITH_EXCEPTION_ROUNDING_UPWARD (
61- static_cast <float16>(1.0 ), LIBC_NAMESPACE::tanhf16 (x), FE_INEXACT);
63+ LIBC_NAMESPACE::fputil::cast<float16>(1.0 ), LIBC_NAMESPACE::tanhf16 (x),
64+ FE_INEXACT);
6265 EXPECT_MATH_ERRNO (0 );
6366
6467 EXPECT_FP_EQ_WITH_EXCEPTION_ROUNDING_DOWNWARD (
65- static_cast <float16>(0x1 .ffcp -1 ), LIBC_NAMESPACE::tanhf16 (x), FE_INEXACT);
68+ LIBC_NAMESPACE::fputil::cast<float16>(0x1 .ffcp -1 ),
69+ LIBC_NAMESPACE::tanhf16 (x), FE_INEXACT);
6670 EXPECT_MATH_ERRNO (0 );
6771
6872 EXPECT_FP_EQ_WITH_EXCEPTION_ROUNDING_TOWARD_ZERO (
69- static_cast <float16>(0x1 .ffcp -1 ), LIBC_NAMESPACE::tanhf16 (x), FE_INEXACT);
73+ LIBC_NAMESPACE::fputil::cast<float16>(0x1 .ffcp -1 ),
74+ LIBC_NAMESPACE::tanhf16 (x), FE_INEXACT);
7075 EXPECT_MATH_ERRNO (0 );
7176
72- x = static_cast <float16>(0x1 .208p+2 );
77+ x = LIBC_NAMESPACE::fputil::cast <float16>(0x1 .208p+2 );
7378
7479 EXPECT_FP_EQ_WITH_EXCEPTION_ROUNDING_NEAREST (
75- static_cast <float16>(1.0 ), LIBC_NAMESPACE::tanhf16 (x), FE_INEXACT);
80+ LIBC_NAMESPACE::fputil::cast<float16>(1.0 ), LIBC_NAMESPACE::tanhf16 (x),
81+ FE_INEXACT);
7682 EXPECT_MATH_ERRNO (0 );
7783
7884 EXPECT_FP_EQ_WITH_EXCEPTION_ROUNDING_UPWARD (
79- static_cast <float16>(1.0 ), LIBC_NAMESPACE::tanhf16 (x), FE_INEXACT);
85+ LIBC_NAMESPACE::fputil::cast<float16>(1.0 ), LIBC_NAMESPACE::tanhf16 (x),
86+ FE_INEXACT);
8087 EXPECT_MATH_ERRNO (0 );
8188
8289 EXPECT_FP_EQ_WITH_EXCEPTION_ROUNDING_DOWNWARD (
83- static_cast <float16>(0x1 .ffcp -1 ), LIBC_NAMESPACE::tanhf16 (x), FE_INEXACT);
90+ LIBC_NAMESPACE::fputil::cast<float16>(0x1 .ffcp -1 ),
91+ LIBC_NAMESPACE::tanhf16 (x), FE_INEXACT);
8492 EXPECT_MATH_ERRNO (0 );
8593
8694 EXPECT_FP_EQ_WITH_EXCEPTION_ROUNDING_TOWARD_ZERO (
87- static_cast <float16>(0x1 .ffcp -1 ), LIBC_NAMESPACE::tanhf16 (x), FE_INEXACT);
95+ LIBC_NAMESPACE::fputil::cast<float16>(0x1 .ffcp -1 ),
96+ LIBC_NAMESPACE::tanhf16 (x), FE_INEXACT);
8897 EXPECT_MATH_ERRNO (0 );
8998
9099 // round(atanh(-1 + 2^-11), HP, RD);
91- x = static_cast <float16>(-0x1 .0a4p+2 );
100+ x = LIBC_NAMESPACE::fputil::cast <float16>(-0x1 .0a4p+2 );
92101
93102 EXPECT_FP_EQ_WITH_EXCEPTION_ROUNDING_NEAREST (
94- static_cast <float16>(-0x1 .ffcp -1 ), LIBC_NAMESPACE::tanhf16 (x ),
95- FE_INEXACT);
103+ LIBC_NAMESPACE::fputil::cast <float16>(-0x1 .ffcp -1 ),
104+ LIBC_NAMESPACE::tanhf16 (x), FE_INEXACT);
96105 EXPECT_MATH_ERRNO (0 );
97106
98- EXPECT_FP_EQ_WITH_EXCEPTION_ROUNDING_UPWARD (static_cast <float16>(- 0x1 . ffcp - 1 ),
99- LIBC_NAMESPACE::tanhf16 (x ),
100- FE_INEXACT);
107+ EXPECT_FP_EQ_WITH_EXCEPTION_ROUNDING_UPWARD (
108+ LIBC_NAMESPACE::fputil::cast<float16>(- 0x1 . ffcp - 1 ),
109+ LIBC_NAMESPACE::tanhf16 (x), FE_INEXACT);
101110 EXPECT_MATH_ERRNO (0 );
102111
103112 EXPECT_FP_EQ_WITH_EXCEPTION_ROUNDING_DOWNWARD (
104- static_cast <float16>(-1.0 ), LIBC_NAMESPACE::tanhf16 (x), FE_INEXACT);
113+ LIBC_NAMESPACE::fputil::cast<float16>(-1.0 ), LIBC_NAMESPACE::tanhf16 (x),
114+ FE_INEXACT);
105115 EXPECT_MATH_ERRNO (0 );
106116
107117 EXPECT_FP_EQ_WITH_EXCEPTION_ROUNDING_TOWARD_ZERO (
108- static_cast <float16>(-0x1 .ffcp -1 ), LIBC_NAMESPACE::tanhf16 (x ),
109- FE_INEXACT);
118+ LIBC_NAMESPACE::fputil::cast <float16>(-0x1 .ffcp -1 ),
119+ LIBC_NAMESPACE::tanhf16 (x), FE_INEXACT);
110120 EXPECT_MATH_ERRNO (0 );
111121
112- x = static_cast <float16>(-0x1 .208p+2 );
122+ x = LIBC_NAMESPACE::fputil::cast <float16>(-0x1 .208p+2 );
113123
114124 EXPECT_FP_EQ_WITH_EXCEPTION_ROUNDING_NEAREST (
115- static_cast <float16>(-1.0 ), LIBC_NAMESPACE::tanhf16 (x), FE_INEXACT);
125+ LIBC_NAMESPACE::fputil::cast<float16>(-1.0 ), LIBC_NAMESPACE::tanhf16 (x),
126+ FE_INEXACT);
116127 EXPECT_MATH_ERRNO (0 );
117128
118- EXPECT_FP_EQ_WITH_EXCEPTION_ROUNDING_UPWARD (static_cast <float16>(- 0x1 . ffcp - 1 ),
119- LIBC_NAMESPACE::tanhf16 (x ),
120- FE_INEXACT);
129+ EXPECT_FP_EQ_WITH_EXCEPTION_ROUNDING_UPWARD (
130+ LIBC_NAMESPACE::fputil::cast<float16>(- 0x1 . ffcp - 1 ),
131+ LIBC_NAMESPACE::tanhf16 (x), FE_INEXACT);
121132 EXPECT_MATH_ERRNO (0 );
122133
123134 EXPECT_FP_EQ_WITH_EXCEPTION_ROUNDING_DOWNWARD (
124- static_cast <float16>(-1.0 ), LIBC_NAMESPACE::tanhf16 (x), FE_INEXACT);
135+ LIBC_NAMESPACE::fputil::cast<float16>(-1.0 ), LIBC_NAMESPACE::tanhf16 (x),
136+ FE_INEXACT);
125137 EXPECT_MATH_ERRNO (0 );
126138
127139 EXPECT_FP_EQ_WITH_EXCEPTION_ROUNDING_TOWARD_ZERO (
128- static_cast <float16>(-0x1 .ffcp -1 ), LIBC_NAMESPACE::tanhf16 (x ),
129- FE_INEXACT);
140+ LIBC_NAMESPACE::fputil::cast <float16>(-0x1 .ffcp -1 ),
141+ LIBC_NAMESPACE::tanhf16 (x), FE_INEXACT);
130142 EXPECT_MATH_ERRNO (0 );
131143}
0 commit comments