1 | //===-- Unittests for absfx -----------------------------------------------===// |
2 | // |
3 | // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
4 | // See https://llvm.org/LICENSE.txt for license information. |
5 | // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
6 | // |
7 | //===----------------------------------------------------------------------===// |
8 | |
9 | #include "AbsTest.h" |
10 | #include "src/stdfix/abshk.h" |
11 | #include "src/stdfix/abshr.h" |
12 | #include "src/stdfix/absk.h" |
13 | #include "src/stdfix/abslk.h" |
14 | #include "src/stdfix/abslr.h" |
15 | #include "src/stdfix/absr.h" |
16 | |
17 | #include "src/stdfix/countlshk.h" |
18 | #include "src/stdfix/countlshr.h" |
19 | #include "src/stdfix/countlsk.h" |
20 | #include "src/stdfix/countlslk.h" |
21 | #include "src/stdfix/countlslr.h" |
22 | #include "src/stdfix/countlsr.h" |
23 | #include "src/stdfix/countlsuhk.h" |
24 | #include "src/stdfix/countlsuhr.h" |
25 | #include "src/stdfix/countlsuk.h" |
26 | #include "src/stdfix/countlsulk.h" |
27 | #include "src/stdfix/countlsulr.h" |
28 | #include "src/stdfix/countlsur.h" |
29 | |
30 | #include "src/stdfix/roundhk.h" |
31 | #include "src/stdfix/roundhr.h" |
32 | #include "src/stdfix/roundk.h" |
33 | #include "src/stdfix/roundlk.h" |
34 | #include "src/stdfix/roundlr.h" |
35 | #include "src/stdfix/roundr.h" |
36 | #include "src/stdfix/rounduhk.h" |
37 | #include "src/stdfix/rounduhr.h" |
38 | #include "src/stdfix/rounduk.h" |
39 | #include "src/stdfix/roundulk.h" |
40 | #include "src/stdfix/roundulr.h" |
41 | #include "src/stdfix/roundur.h" |
42 | |
43 | using LIBC_NAMESPACE::abshk; |
44 | using LIBC_NAMESPACE::abshr; |
45 | using LIBC_NAMESPACE::absk; |
46 | using LIBC_NAMESPACE::abslk; |
47 | using LIBC_NAMESPACE::abslr; |
48 | using LIBC_NAMESPACE::absr; |
49 | using LIBC_NAMESPACE::countlshk; |
50 | using LIBC_NAMESPACE::countlshr; |
51 | using LIBC_NAMESPACE::countlsk; |
52 | using LIBC_NAMESPACE::countlslk; |
53 | using LIBC_NAMESPACE::countlslr; |
54 | using LIBC_NAMESPACE::countlsr; |
55 | using LIBC_NAMESPACE::countlsuhk; |
56 | using LIBC_NAMESPACE::countlsuhr; |
57 | using LIBC_NAMESPACE::countlsuk; |
58 | using LIBC_NAMESPACE::countlsulk; |
59 | using LIBC_NAMESPACE::countlsulr; |
60 | using LIBC_NAMESPACE::countlsur; |
61 | using LIBC_NAMESPACE::roundhk; |
62 | using LIBC_NAMESPACE::roundhr; |
63 | using LIBC_NAMESPACE::roundk; |
64 | using LIBC_NAMESPACE::roundlk; |
65 | using LIBC_NAMESPACE::roundlr; |
66 | using LIBC_NAMESPACE::roundr; |
67 | using LIBC_NAMESPACE::rounduhk; |
68 | using LIBC_NAMESPACE::rounduhr; |
69 | using LIBC_NAMESPACE::rounduk; |
70 | using LIBC_NAMESPACE::roundulk; |
71 | using LIBC_NAMESPACE::roundulr; |
72 | using LIBC_NAMESPACE::roundur; |
73 | |
74 | TEST(LlvmLibcAbsfxTest, Basic) { |
75 | ASSERT_EQ(absfx(-0.5r), absr(-0.5r)); |
76 | ASSERT_EQ(absfx(-0.5hr), abshr(-0.5hr)); |
77 | ASSERT_EQ(absfx(-0.5lr), abslr(-0.5lr)); |
78 | ASSERT_EQ(absfx(-0.5k), absk(-0.5k)); |
79 | ASSERT_EQ(absfx(-0.5hk), abshk(-0.5hk)); |
80 | ASSERT_EQ(absfx(-0.5lk), abslk(-0.5lk)); |
81 | } |
82 | |
83 | TEST(LlvmLibcRoundfxTest, Basic) { |
84 | ASSERT_EQ(roundfx(0.75r, 0), roundr(0.75r, 0)); |
85 | ASSERT_EQ(roundfx(0.75hr, 0), roundhr(0.75hr, 0)); |
86 | ASSERT_EQ(roundfx(0.75lr, 0), roundlr(0.75lr, 0)); |
87 | ASSERT_EQ(roundfx(0.75k, 0), roundk(0.75k, 0)); |
88 | ASSERT_EQ(roundfx(0.75hk, 0), roundhk(0.75hk, 0)); |
89 | ASSERT_EQ(roundfx(0.75lk, 0), roundlk(0.75lk, 0)); |
90 | |
91 | ASSERT_EQ(roundfx(0.75ur, 0), roundur(0.75ur, 0)); |
92 | ASSERT_EQ(roundfx(0.75uhr, 0), rounduhr(0.75uhr, 0)); |
93 | ASSERT_EQ(roundfx(0.75ulr, 0), roundulr(0.75ulr, 0)); |
94 | ASSERT_EQ(roundfx(0.75uk, 0), rounduk(0.75uk, 0)); |
95 | ASSERT_EQ(roundfx(0.75uhk, 0), rounduhk(0.75uhk, 0)); |
96 | ASSERT_EQ(roundfx(0.75ulk, 0), roundulk(0.75ulk, 0)); |
97 | } |
98 | |
99 | TEST(LlvmLibcCountlsfxTest, Basic) { |
100 | ASSERT_EQ(countlsfx(0.5r), countlsr(0.5r)); |
101 | ASSERT_EQ(countlsfx(0.5hr), countlshr(0.5hr)); |
102 | ASSERT_EQ(countlsfx(0.5lr), countlslr(0.5lr)); |
103 | ASSERT_EQ(countlsfx(0.5k), countlsk(0.5k)); |
104 | ASSERT_EQ(countlsfx(0.5hk), countlshk(0.5hk)); |
105 | ASSERT_EQ(countlsfx(0.5lk), countlslk(0.5lk)); |
106 | |
107 | ASSERT_EQ(countlsfx(0.5ur), countlsur(0.5ur)); |
108 | ASSERT_EQ(countlsfx(0.5uhr), countlsuhr(0.5uhr)); |
109 | ASSERT_EQ(countlsfx(0.5ulr), countlsulr(0.5ulr)); |
110 | ASSERT_EQ(countlsfx(0.5uk), countlsuk(0.5uk)); |
111 | ASSERT_EQ(countlsfx(0.5uhk), countlsuhk(0.5uhk)); |
112 | ASSERT_EQ(countlsfx(0.5ulk), countlsulk(0.5ulk)); |
113 | } |
114 | |