[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