[llvm] [Support][APint] Add more unit tests for clearBits / clearBitsSlowCase (PR #189434)

via llvm-commits llvm-commits at lists.llvm.org
Mon Mar 30 11:02:40 PDT 2026


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-llvm-adt

Author: Max Graey (MaxGraey)

<details>
<summary>Changes</summary>



---
Full diff: https://github.com/llvm/llvm-project/pull/189434.diff


1 Files Affected:

- (modified) llvm/unittests/ADT/APIntTest.cpp (+20) 


``````````diff
diff --git a/llvm/unittests/ADT/APIntTest.cpp b/llvm/unittests/ADT/APIntTest.cpp
index 34efc4ff8ccf5..26760c36dbe9f 100644
--- a/llvm/unittests/ADT/APIntTest.cpp
+++ b/llvm/unittests/ADT/APIntTest.cpp
@@ -2622,6 +2622,26 @@ TEST(APIntTest, clearBits) {
   EXPECT_EQ(32u, i64hi32.countl_zero());
   EXPECT_EQ(0u, i64hi32.countl_one());
   EXPECT_EQ(32u, i64hi32.popcount());
+
+  APInt i65top = APInt::getAllOnes(65);
+  i65top.clearBits(64, 65);
+  EXPECT_EQ(64u, i65top.countr_one());
+  EXPECT_EQ(0u, i65top.countr_zero());
+  EXPECT_EQ(64u, i65top.getActiveBits());
+  EXPECT_EQ(1u, i65top.countl_zero());
+  EXPECT_EQ(0u, i65top.countl_one());
+  EXPECT_EQ(64u, i65top.popcount());
+  EXPECT_FALSE(i65top[64]);
+  EXPECT_EQ(APInt(65, UINT64_MAX), i65top);
+
+  APInt i128hi64 = APInt::getAllOnes(128);
+  i128hi64.clearBits(64, 128);
+  EXPECT_EQ(64u, i128hi64.countr_one());
+  EXPECT_EQ(0u, i128hi64.countr_zero());
+  EXPECT_EQ(64u, i128hi64.getActiveBits());
+  EXPECT_EQ(64u, i128hi64.countl_zero());
+  EXPECT_EQ(0u, i128hi64.countl_one());
+  EXPECT_EQ(64u, i128hi64.popcount());
 }
 
 TEST(APIntTest, getLoBits) {

``````````

</details>


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


More information about the llvm-commits mailing list