summaryrefslogtreecommitdiff
path: root/libc/test/include/stdbit_test.cpp
diff options
context:
space:
mode:
authorNick Desaulniers <nickdesaulniers@users.noreply.github.com>2024-02-01 10:14:22 -0800
committerGitHub <noreply@github.com>2024-02-01 10:14:22 -0800
commit6a3fde6d600cccd2ffbede6dd54519036cc4089c (patch)
tree304ae778c6e8f6cede6ff2947b6d689e5829aab6 /libc/test/include/stdbit_test.cpp
parentecb5a1b0e236a98f59863793b4cfef1f13ea225c (diff)
[libc] implement stdc_leading_ones (C23) (#80082)
Diffstat (limited to 'libc/test/include/stdbit_test.cpp')
-rw-r--r--libc/test/include/stdbit_test.cpp17
1 files changed, 16 insertions, 1 deletions
diff --git a/libc/test/include/stdbit_test.cpp b/libc/test/include/stdbit_test.cpp
index d20005cc31af..61e241c8f68a 100644
--- a/libc/test/include/stdbit_test.cpp
+++ b/libc/test/include/stdbit_test.cpp
@@ -23,8 +23,13 @@ unsigned short stdc_leading_zeros_us(unsigned short) { return 0xAB; }
unsigned stdc_leading_zeros_ui(unsigned) { return 0xAC; }
unsigned long stdc_leading_zeros_ul(unsigned long) { return 0xAD; }
unsigned long long stdc_leading_zeros_ull(unsigned long long) { return 0xAF; }
+unsigned char stdc_leading_ones_uc(unsigned char) { return 0xBA; }
+unsigned short stdc_leading_ones_us(unsigned short) { return 0xBB; }
+unsigned stdc_leading_ones_ui(unsigned) { return 0xBC; }
+unsigned long stdc_leading_ones_ul(unsigned long) { return 0xBD; }
+unsigned long long stdc_leading_ones_ull(unsigned long long) { return 0xBF; }
-TEST(LlvmLibcStdbitTest, TypeGenericMacro) {
+TEST(LlvmLibcStdbitTest, TypeGenericMacroLeadingZeros) {
EXPECT_EQ(stdc_leading_zeros(static_cast<unsigned char>(0U)),
static_cast<unsigned char>(0xAA));
EXPECT_EQ(stdc_leading_zeros(static_cast<unsigned short>(0U)),
@@ -33,3 +38,13 @@ TEST(LlvmLibcStdbitTest, TypeGenericMacro) {
EXPECT_EQ(stdc_leading_zeros(0UL), static_cast<unsigned long>(0xAD));
EXPECT_EQ(stdc_leading_zeros(0ULL), static_cast<unsigned long long>(0xAF));
}
+
+TEST(LlvmLibcStdbitTest, TypeGenericMacroLeadingOnes) {
+ EXPECT_EQ(stdc_leading_ones(static_cast<unsigned char>(0U)),
+ static_cast<unsigned char>(0xBA));
+ EXPECT_EQ(stdc_leading_ones(static_cast<unsigned short>(0U)),
+ static_cast<unsigned short>(0xBB));
+ EXPECT_EQ(stdc_leading_ones(0U), static_cast<unsigned>(0xBC));
+ EXPECT_EQ(stdc_leading_ones(0UL), static_cast<unsigned long>(0xBD));
+ EXPECT_EQ(stdc_leading_ones(0ULL), static_cast<unsigned long long>(0xBF));
+}