7
7
// ===----------------------------------------------------------------------===//
8
8
9
9
#include " hdr/fenv_macros.h"
10
+ #include " src/__support/FPUtil/cast.h"
10
11
#include " src/errno/libc_errno.h"
11
12
#include " src/math/exp10m1f16.h"
12
13
#include " test/UnitTest/FPMatcher.h"
@@ -27,7 +28,7 @@ TEST_F(LlvmLibcExp10m1f16Test, SpecialNumbers) {
27
28
EXPECT_FP_EQ_ALL_ROUNDING (inf, LIBC_NAMESPACE::exp10m1f16 (inf));
28
29
EXPECT_MATH_ERRNO (0 );
29
30
30
- EXPECT_FP_EQ_ALL_ROUNDING (static_cast <float16>(-1.0 ),
31
+ EXPECT_FP_EQ_ALL_ROUNDING (LIBC_NAMESPACE::fputil::cast <float16>(-1.0 ),
31
32
LIBC_NAMESPACE::exp10m1f16 (neg_inf));
32
33
EXPECT_MATH_ERRNO (0 );
33
34
@@ -46,7 +47,7 @@ TEST_F(LlvmLibcExp10m1f16Test, Overflow) {
46
47
EXPECT_MATH_ERRNO (ERANGE);
47
48
48
49
// round(16 * log10(2), HP, RN);
49
- float16 x = static_cast <float16>(0x1 .344p+2 );
50
+ float16 x = LIBC_NAMESPACE::fputil::cast <float16>(0x1 .344p+2 );
50
51
51
52
EXPECT_FP_EQ_WITH_EXCEPTION_ROUNDING_NEAREST (
52
53
inf, LIBC_NAMESPACE::exp10m1f16 (x), FE_OVERFLOW | FE_INEXACT);
@@ -68,42 +69,45 @@ TEST_F(LlvmLibcExp10m1f16Test, Overflow) {
68
69
TEST_F (LlvmLibcExp10m1f16Test, ResultNearNegOne) {
69
70
LIBC_NAMESPACE::libc_errno = 0 ;
70
71
71
- EXPECT_FP_EQ_WITH_EXCEPTION (static_cast <float16>(-1.0 ),
72
+ EXPECT_FP_EQ_WITH_EXCEPTION (LIBC_NAMESPACE::fputil::cast <float16>(-1.0 ),
72
73
LIBC_NAMESPACE::exp10m1f16 (neg_max_normal),
73
74
FE_INEXACT);
74
75
75
76
// round(-11 * log10(2), HP, RD);
76
- float16 x = static_cast <float16>(-0x1 .a8p +1 );
77
+ float16 x = LIBC_NAMESPACE::fputil::cast <float16>(-0x1 .a8p +1 );
77
78
78
79
EXPECT_FP_EQ_WITH_EXCEPTION_ROUNDING_NEAREST (
79
- static_cast <float16>(-0x1 .ffcp -1 ), LIBC_NAMESPACE::exp10m1f16 (x ),
80
- FE_INEXACT);
80
+ LIBC_NAMESPACE::fputil::cast <float16>(-0x1 .ffcp -1 ),
81
+ LIBC_NAMESPACE::exp10m1f16 (x), FE_INEXACT);
81
82
82
- EXPECT_FP_EQ_WITH_EXCEPTION_ROUNDING_UPWARD (static_cast <float16>(- 0x1 . ffcp - 1 ),
83
- LIBC_NAMESPACE::exp10m1f16 (x ),
84
- FE_INEXACT);
83
+ EXPECT_FP_EQ_WITH_EXCEPTION_ROUNDING_UPWARD (
84
+ LIBC_NAMESPACE::fputil::cast<float16>(- 0x1 . ffcp - 1 ),
85
+ LIBC_NAMESPACE::exp10m1f16 (x), FE_INEXACT);
85
86
86
87
EXPECT_FP_EQ_WITH_EXCEPTION_ROUNDING_DOWNWARD (
87
- static_cast <float16>(-1.0 ), LIBC_NAMESPACE::exp10m1f16 (x), FE_INEXACT);
88
+ LIBC_NAMESPACE::fputil::cast<float16>(-1.0 ),
89
+ LIBC_NAMESPACE::exp10m1f16 (x), FE_INEXACT);
88
90
89
91
EXPECT_FP_EQ_WITH_EXCEPTION_ROUNDING_TOWARD_ZERO (
90
- static_cast <float16>(-0x1 .ffcp -1 ), LIBC_NAMESPACE::exp10m1f16 (x ),
91
- FE_INEXACT);
92
+ LIBC_NAMESPACE::fputil::cast <float16>(-0x1 .ffcp -1 ),
93
+ LIBC_NAMESPACE::exp10m1f16 (x), FE_INEXACT);
92
94
93
95
// Next float16 value below -0x1.ce4p+1.
94
- x = static_cast <float16>(-0x1 .ce8p +1 );
96
+ x = LIBC_NAMESPACE::fputil::cast <float16>(-0x1 .ce8p +1 );
95
97
96
98
EXPECT_FP_EQ_WITH_EXCEPTION_ROUNDING_NEAREST (
97
- static_cast <float16>(-1.0 ), LIBC_NAMESPACE::exp10m1f16 (x), FE_INEXACT);
99
+ LIBC_NAMESPACE::fputil::cast<float16>(-1.0 ),
100
+ LIBC_NAMESPACE::exp10m1f16 (x), FE_INEXACT);
98
101
99
- EXPECT_FP_EQ_WITH_EXCEPTION_ROUNDING_UPWARD (static_cast <float16>(- 0x1 . ffcp - 1 ),
100
- LIBC_NAMESPACE::exp10m1f16 (x ),
101
- FE_INEXACT);
102
+ EXPECT_FP_EQ_WITH_EXCEPTION_ROUNDING_UPWARD (
103
+ LIBC_NAMESPACE::fputil::cast<float16>(- 0x1 . ffcp - 1 ),
104
+ LIBC_NAMESPACE::exp10m1f16 (x), FE_INEXACT);
102
105
103
106
EXPECT_FP_EQ_WITH_EXCEPTION_ROUNDING_DOWNWARD (
104
- static_cast <float16>(-1.0 ), LIBC_NAMESPACE::exp10m1f16 (x), FE_INEXACT);
107
+ LIBC_NAMESPACE::fputil::cast<float16>(-1.0 ),
108
+ LIBC_NAMESPACE::exp10m1f16 (x), FE_INEXACT);
105
109
106
110
EXPECT_FP_EQ_WITH_EXCEPTION_ROUNDING_TOWARD_ZERO (
107
- static_cast <float16>(-0x1 .ffcp -1 ), LIBC_NAMESPACE::exp10m1f16 (x ),
108
- FE_INEXACT);
111
+ LIBC_NAMESPACE::fputil::cast <float16>(-0x1 .ffcp -1 ),
112
+ LIBC_NAMESPACE::exp10m1f16 (x), FE_INEXACT);
109
113
}
0 commit comments