mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-09-25 17:20:48 +00:00
Implement operators |=, &=, and ^= for SmallBitVector, and remove the
restriction in BitVector for |= and ^= that the operand must be the same length. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95768 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -138,5 +138,45 @@ TEST(BitVectorTest, TrivialOperation) {
|
||||
EXPECT_TRUE(Vec.empty());
|
||||
}
|
||||
|
||||
TEST(BitVectorTest, CompoundAssignment) {
|
||||
BitVector A;
|
||||
A.resize(10);
|
||||
A.set(4);
|
||||
A.set(7);
|
||||
|
||||
BitVector B;
|
||||
B.resize(50);
|
||||
B.set(5);
|
||||
B.set(18);
|
||||
|
||||
A |= B;
|
||||
EXPECT_TRUE(A.test(4));
|
||||
EXPECT_TRUE(A.test(5));
|
||||
EXPECT_TRUE(A.test(7));
|
||||
EXPECT_TRUE(A.test(18));
|
||||
EXPECT_EQ(A.count(), 4);
|
||||
EXPECT_EQ(A.size(), 50);
|
||||
|
||||
B.resize(10);
|
||||
B.set();
|
||||
B.reset(2);
|
||||
B.reset(7);
|
||||
A &= B;
|
||||
EXPECT_FALSE(A.test(2));
|
||||
EXPECT_FALSE(A.test(7));
|
||||
EXPECT_EQ(A.size(), 50);
|
||||
EXPECT_EQ(A.count(), 2);
|
||||
|
||||
B.resize(100);
|
||||
B.set();
|
||||
|
||||
A ^= B;
|
||||
EXPECT_TRUE(A.test(2));
|
||||
EXPECT_TRUE(A.test(7));
|
||||
EXPECT_EQ(A.size(), 100);
|
||||
EXPECT_EQ(A.count(), 98);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user