diff options
author | Jay Foad <jay.foad@amd.com> | 2023-01-26 11:34:50 -0600 |
---|---|---|
committer | Noah Goldstein <goldstein.w.n@gmail.com> | 2023-02-18 13:31:07 -0600 |
commit | 6749d187c6dfd1b126698e44276bbf1f9050beb8 (patch) | |
tree | f337d0670c9562b993d2b273a40ecf4b7ff0e532 /llvm/unittests/Support/KnownBitsTest.cpp | |
parent | 4384127549e2ddcc5a11fa96885760363d102682 (diff) | |
download | llvm-6749d187c6dfd1b126698e44276bbf1f9050beb8.zip llvm-6749d187c6dfd1b126698e44276bbf1f9050beb8.tar.gz llvm-6749d187c6dfd1b126698e44276bbf1f9050beb8.tar.bz2 |
[KnownBits] Add blsi and blsmsk
Reviewed By: nikic
Differential Revision: https://reviews.llvm.org/D142519
Diffstat (limited to 'llvm/unittests/Support/KnownBitsTest.cpp')
-rw-r--r-- | llvm/unittests/Support/KnownBitsTest.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/llvm/unittests/Support/KnownBitsTest.cpp b/llvm/unittests/Support/KnownBitsTest.cpp index 2f5d2e8..da1f6b5 100644 --- a/llvm/unittests/Support/KnownBitsTest.cpp +++ b/llvm/unittests/Support/KnownBitsTest.cpp @@ -284,6 +284,12 @@ TEST(KnownBitsTest, UnaryExhaustive) { KnownAbs.Zero.setAllBits(); KnownAbs.One.setAllBits(); KnownBits KnownAbsPoison(KnownAbs); + KnownBits KnownBlsi(Bits); + KnownBlsi.Zero.setAllBits(); + KnownBlsi.One.setAllBits(); + KnownBits KnownBlsmsk(Bits); + KnownBlsmsk.Zero.setAllBits(); + KnownBlsmsk.One.setAllBits(); ForeachNumInKnownBits(Known, [&](const APInt &N) { APInt Res = N.abs(); @@ -294,6 +300,14 @@ TEST(KnownBitsTest, UnaryExhaustive) { KnownAbsPoison.One &= Res; KnownAbsPoison.Zero &= ~Res; } + + Res = N & -N; + KnownBlsi.One &= Res; + KnownBlsi.Zero &= ~Res; + + Res = N ^ (N - 1); + KnownBlsmsk.One &= Res; + KnownBlsmsk.Zero &= ~Res; }); // abs() is conservatively correct, but not guaranteed to be precise. @@ -304,6 +318,12 @@ TEST(KnownBitsTest, UnaryExhaustive) { KnownBits ComputedAbsPoison = Known.abs(true); EXPECT_TRUE(ComputedAbsPoison.Zero.isSubsetOf(KnownAbsPoison.Zero)); EXPECT_TRUE(ComputedAbsPoison.One.isSubsetOf(KnownAbsPoison.One)); + + KnownBits ComputedBlsi = Known.blsi(); + EXPECT_EQ(KnownBlsi, ComputedBlsi); + + KnownBits ComputedBlsmsk = Known.blsmsk(); + EXPECT_EQ(KnownBlsmsk, ComputedBlsmsk); }); } |