[libc-commits] [libc] [libc] implement `strings/ffs` (PR #129892)

via libc-commits libc-commits at lists.llvm.org
Fri Mar 7 08:46:23 PST 2025


================
@@ -14,8 +14,23 @@
 namespace LIBC_NAMESPACE_DECL {
 
 TEST(LlvmLibcFfslTest, SimpleFfsl) {
-  ASSERT_EQ(ffsl(0L), 0);
-  ASSERT_EQ(ffsl(1L), 1);
+  ASSERT_EQ(ffsl(0x00000000L), 0);
+  ASSERT_EQ(ffsl(0x00000001L), 1);
+  ASSERT_EQ(ffsl(0x00000020L), 6);
+  ASSERT_EQ(ffsl(0x00000400L), 11);
+  ASSERT_EQ(ffsl(0x00008000L), 16);
+  ASSERT_EQ(ffsl(0x00010000L), 17);
+  ASSERT_EQ(ffsl(0x00200000L), 22);
+  ASSERT_EQ(ffsl(0x04000000L), 27);
+  ASSERT_EQ(ffsl(0x80000000L), 32);
+  ASSERT_EQ(ffsl(0x0000000100000000L), 33);
----------------
lntue wrote:

Can you guard this part, because `long` might be 32-bit on some platforms.

https://github.com/llvm/llvm-project/pull/129892


More information about the libc-commits mailing list