[llvm] [ADT] BitVector: give `subsetOf(RHS)` name to `!test(RHS)` (NFC) (PR #170875)
Jakub Kuderski via llvm-commits
llvm-commits at lists.llvm.org
Mon Dec 8 07:45:12 PST 2025
================
@@ -835,26 +836,118 @@ TYPED_TEST(BitVectorTest, BinOps) {
A.resize(65);
EXPECT_FALSE(A.anyCommon(B));
EXPECT_FALSE(B.anyCommon(B));
+ EXPECT_TRUE(A.subsetOf(B));
+ EXPECT_TRUE(B.subsetOf(A));
B.resize(64);
A.set(64);
EXPECT_FALSE(A.anyCommon(B));
EXPECT_FALSE(B.anyCommon(A));
+ EXPECT_FALSE(A.subsetOf(B));
+ EXPECT_TRUE(B.subsetOf(A));
B.set(63);
EXPECT_FALSE(A.anyCommon(B));
EXPECT_FALSE(B.anyCommon(A));
+ EXPECT_FALSE(A.subsetOf(B));
+ EXPECT_FALSE(B.subsetOf(A));
A.set(63);
EXPECT_TRUE(A.anyCommon(B));
EXPECT_TRUE(B.anyCommon(A));
+ EXPECT_FALSE(A.subsetOf(B));
+ EXPECT_TRUE(B.subsetOf(A));
B.resize(70);
B.set(64);
B.reset(63);
A.resize(64);
EXPECT_FALSE(A.anyCommon(B));
EXPECT_FALSE(B.anyCommon(A));
+ EXPECT_FALSE(A.subsetOf(B));
+ EXPECT_FALSE(B.subsetOf(A));
+
+ B.set(63);
+ B.reset(64);
+ EXPECT_TRUE(A.anyCommon(B));
+ EXPECT_TRUE(B.anyCommon(A));
+ EXPECT_TRUE(A.subsetOf(B));
+ EXPECT_TRUE(B.subsetOf(A));
+}
+
+template <typename VecType>
+static inline VecType
+createBitVectorFromBits(uint32_t Size, std::initializer_list<int> SetBits) {
+ VecType V;
+ V.resize(Size);
+ for (int BitIndex : SetBits)
+ V.set(BitIndex);
+ return V;
+}
+
+TYPED_TEST(BitVectorTest, BinOpsLiteral) {
+ // More tests of binary operations with more focus on the semantics and
+ // less focus on mutability.
+
+ auto AnyCommon = [](uint32_t SizeLHS, std::initializer_list<int> SetBitsLHS,
+ uint32_t SizeRHS, std::initializer_list<int> SetBitsRHS) {
+ auto LHS = createBitVectorFromBits<TypeParam>(SizeLHS, SetBitsLHS);
+ auto RHS = createBitVectorFromBits<TypeParam>(SizeRHS, SetBitsRHS);
+ return LHS.anyCommon(RHS);
+ };
+ auto SubsetOf = [](uint32_t SizeLHS, std::initializer_list<int> SetBitsLHS,
+ uint32_t SizeRHS, std::initializer_list<int> SetBitsRHS) {
+ auto LHS = createBitVectorFromBits<TypeParam>(SizeLHS, SetBitsLHS);
+ auto RHS = createBitVectorFromBits<TypeParam>(SizeRHS, SetBitsRHS);
+ return LHS.subsetOf(RHS);
+ };
+
+ // clang-format off
+
+ // Test small-sized vectors.
+
+ EXPECT_TRUE (AnyCommon(10, {1, 2, 3}, 10, {3, 4, 5}));
----------------
kuhar wrote:
```suggestion
// Test small-sized vectors.
EXPECT_TRUE (AnyCommon(10, {1, 2, 3}, 10, {3, 4, 5}));
```
https://github.com/llvm/llvm-project/pull/170875
More information about the llvm-commits
mailing list