mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-15 07:59:57 +00:00
[APInt] Remove special case for i1.
Add a unit test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@239062 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
3e2318fbb5
commit
15df8bebdc
@ -351,8 +351,7 @@ public:
|
|||||||
/// This checks to see if the value of this APInt is the maximum signed
|
/// This checks to see if the value of this APInt is the maximum signed
|
||||||
/// value for the APInt's bit width.
|
/// value for the APInt's bit width.
|
||||||
bool isMaxSignedValue() const {
|
bool isMaxSignedValue() const {
|
||||||
return BitWidth == 1 ? VAL == 0
|
return !isNegative() && countPopulation() == BitWidth - 1;
|
||||||
: !isNegative() && countPopulation() == BitWidth - 1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// \brief Determine if this is the smallest unsigned value.
|
/// \brief Determine if this is the smallest unsigned value.
|
||||||
@ -366,7 +365,7 @@ public:
|
|||||||
/// This checks to see if the value of this APInt is the minimum signed
|
/// This checks to see if the value of this APInt is the minimum signed
|
||||||
/// value for the APInt's bit width.
|
/// value for the APInt's bit width.
|
||||||
bool isMinSignedValue() const {
|
bool isMinSignedValue() const {
|
||||||
return BitWidth == 1 ? VAL == 1 : isNegative() && isPowerOf2();
|
return isNegative() && isPowerOf2();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// \brief Check if this APInt has an N-bits unsigned integer value.
|
/// \brief Check if this APInt has an N-bits unsigned integer value.
|
||||||
|
@ -134,6 +134,12 @@ TEST(APIntTest, i1) {
|
|||||||
EXPECT_EQ(one, neg_one);
|
EXPECT_EQ(one, neg_one);
|
||||||
EXPECT_EQ(two, neg_two);
|
EXPECT_EQ(two, neg_two);
|
||||||
|
|
||||||
|
// Min/max signed values.
|
||||||
|
EXPECT_TRUE(zero.isMaxSignedValue());
|
||||||
|
EXPECT_FALSE(one.isMaxSignedValue());
|
||||||
|
EXPECT_FALSE(zero.isMinSignedValue());
|
||||||
|
EXPECT_TRUE(one.isMinSignedValue());
|
||||||
|
|
||||||
// Additions.
|
// Additions.
|
||||||
EXPECT_EQ(two, one + one);
|
EXPECT_EQ(two, one + one);
|
||||||
EXPECT_EQ(zero, neg_one + one);
|
EXPECT_EQ(zero, neg_one + one);
|
||||||
|
Loading…
Reference in New Issue
Block a user