Index: runtime/vm/flow_graph_range_analysis_test.cc |
diff --git a/runtime/vm/flow_graph_range_analysis_test.cc b/runtime/vm/flow_graph_range_analysis_test.cc |
index 7ebd6b4e3cc7c6f574ad8e310302e6bcdb17f472..a15cea68aa34f14ba5b332a095d64058e593b1e3 100644 |
--- a/runtime/vm/flow_graph_range_analysis_test.cc |
+++ b/runtime/vm/flow_graph_range_analysis_test.cc |
@@ -8,18 +8,14 @@ |
namespace dart { |
TEST_CASE(RangeTests) { |
- Range* zero = new Range( |
- RangeBoundary::FromConstant(0), |
- RangeBoundary::FromConstant(0)); |
- Range* positive = new Range( |
- RangeBoundary::FromConstant(0), |
- RangeBoundary::FromConstant(100)); |
- Range* negative = new Range( |
- RangeBoundary::FromConstant(-1), |
- RangeBoundary::FromConstant(-100)); |
- Range* range_x = new Range( |
- RangeBoundary::FromConstant(-15), |
- RangeBoundary::FromConstant(100)); |
+ Range* zero = |
+ new Range(RangeBoundary::FromConstant(0), RangeBoundary::FromConstant(0)); |
+ Range* positive = new Range(RangeBoundary::FromConstant(0), |
+ RangeBoundary::FromConstant(100)); |
+ Range* negative = new Range(RangeBoundary::FromConstant(-1), |
+ RangeBoundary::FromConstant(-100)); |
+ Range* range_x = new Range(RangeBoundary::FromConstant(-15), |
+ RangeBoundary::FromConstant(100)); |
EXPECT(positive->IsPositive()); |
EXPECT(zero->Overlaps(0, 0)); |
EXPECT(positive->Overlaps(0, 0)); |
@@ -29,15 +25,14 @@ TEST_CASE(RangeTests) { |
EXPECT(!range_x->IsWithin(-15, 99)); |
EXPECT(!range_x->IsWithin(-14, 100)); |
-#define TEST_RANGE_OP_(Op, l_min, l_max, r_min, r_max, Clamp, res_min, res_max)\ |
+#define TEST_RANGE_OP_(Op, l_min, l_max, r_min, r_max, Clamp, res_min, \ |
+ res_max) \ |
{ \ |
RangeBoundary min, max; \ |
- Range* left_range = new Range( \ |
- RangeBoundary::FromConstant(l_min), \ |
- RangeBoundary::FromConstant(l_max)); \ |
- Range* shift_range = new Range( \ |
- RangeBoundary::FromConstant(r_min), \ |
- RangeBoundary::FromConstant(r_max)); \ |
+ Range* left_range = new Range(RangeBoundary::FromConstant(l_min), \ |
+ RangeBoundary::FromConstant(l_max)); \ |
+ Range* shift_range = new Range(RangeBoundary::FromConstant(r_min), \ |
+ RangeBoundary::FromConstant(r_max)); \ |
Op(left_range, shift_range, &min, &max); \ |
min = Clamp(min); \ |
max = Clamp(max); \ |
@@ -53,52 +48,44 @@ TEST_CASE(RangeTests) { |
#define NO_CLAMP(b) (b) |
#define TEST_RANGE_OP(Op, l_min, l_max, r_min, r_max, result_min, result_max) \ |
- TEST_RANGE_OP_(Op, l_min, l_max, r_min, r_max, \ |
- NO_CLAMP, result_min, result_max) |
+ TEST_RANGE_OP_(Op, l_min, l_max, r_min, r_max, NO_CLAMP, result_min, \ |
+ result_max) |
#define CLAMP_TO_SMI(b) (b.Clamp(RangeBoundary::kRangeBoundarySmi)) |
#define TEST_RANGE_OP_SMI(Op, l_min, l_max, r_min, r_max, res_min, res_max) \ |
- TEST_RANGE_OP_(Op, l_min, l_max, r_min, r_max, \ |
- CLAMP_TO_SMI, res_min, res_max) |
- |
- TEST_RANGE_OP(Range::Shl, -15, 100, 0, 2, |
- RangeBoundary(-60), RangeBoundary(400)); |
- TEST_RANGE_OP(Range::Shl, -15, 100, -2, 2, |
- RangeBoundary(-60), RangeBoundary(400)); |
- TEST_RANGE_OP(Range::Shl, -15, -10, 1, 2, |
- RangeBoundary(-60), RangeBoundary(-20)); |
- TEST_RANGE_OP(Range::Shl, 5, 10, -2, 2, |
- RangeBoundary(5), RangeBoundary(40)); |
- TEST_RANGE_OP(Range::Shl, -15, 100, 0, 64, |
- RangeBoundary::NegativeInfinity(), |
+ TEST_RANGE_OP_(Op, l_min, l_max, r_min, r_max, CLAMP_TO_SMI, res_min, res_max) |
+ |
+ TEST_RANGE_OP(Range::Shl, -15, 100, 0, 2, RangeBoundary(-60), |
+ RangeBoundary(400)); |
+ TEST_RANGE_OP(Range::Shl, -15, 100, -2, 2, RangeBoundary(-60), |
+ RangeBoundary(400)); |
+ TEST_RANGE_OP(Range::Shl, -15, -10, 1, 2, RangeBoundary(-60), |
+ RangeBoundary(-20)); |
+ TEST_RANGE_OP(Range::Shl, 5, 10, -2, 2, RangeBoundary(5), RangeBoundary(40)); |
+ TEST_RANGE_OP(Range::Shl, -15, 100, 0, 64, RangeBoundary::NegativeInfinity(), |
RangeBoundary::PositiveInfinity()); |
- TEST_RANGE_OP(Range::Shl, -1, 1, 63, 63, |
- RangeBoundary(kMinInt64), |
+ TEST_RANGE_OP(Range::Shl, -1, 1, 63, 63, RangeBoundary(kMinInt64), |
RangeBoundary::PositiveInfinity()); |
if (kBitsPerWord == 64) { |
- TEST_RANGE_OP_SMI(Range::Shl, -1, 1, 62, 62, |
- RangeBoundary(kSmiMin), |
- RangeBoundary(kSmiMax)); |
- TEST_RANGE_OP_SMI(Range::Shl, -1, 1, 30, 30, |
- RangeBoundary(-(1 << 30)), |
- RangeBoundary(1 << 30)); |
+ TEST_RANGE_OP_SMI(Range::Shl, -1, 1, 62, 62, RangeBoundary(kSmiMin), |
+ RangeBoundary(kSmiMax)); |
+ TEST_RANGE_OP_SMI(Range::Shl, -1, 1, 30, 30, RangeBoundary(-(1 << 30)), |
+ RangeBoundary(1 << 30)); |
} else { |
- TEST_RANGE_OP_SMI(Range::Shl, -1, 1, 30, 30, |
- RangeBoundary(kSmiMin), |
- RangeBoundary(kSmiMax)); |
- TEST_RANGE_OP_SMI(Range::Shl, -1, 1, 62, 62, |
- RangeBoundary(kSmiMin), |
- RangeBoundary(kSmiMax)); |
+ TEST_RANGE_OP_SMI(Range::Shl, -1, 1, 30, 30, RangeBoundary(kSmiMin), |
+ RangeBoundary(kSmiMax)); |
+ TEST_RANGE_OP_SMI(Range::Shl, -1, 1, 62, 62, RangeBoundary(kSmiMin), |
+ RangeBoundary(kSmiMax)); |
} |
- TEST_RANGE_OP(Range::Shl, 0, 100, 0, 64, |
- RangeBoundary(0), RangeBoundary::PositiveInfinity()); |
- TEST_RANGE_OP(Range::Shl, -100, 0, 0, 64, |
- RangeBoundary::NegativeInfinity(), RangeBoundary(0)); |
+ TEST_RANGE_OP(Range::Shl, 0, 100, 0, 64, RangeBoundary(0), |
+ RangeBoundary::PositiveInfinity()); |
+ TEST_RANGE_OP(Range::Shl, -100, 0, 0, 64, RangeBoundary::NegativeInfinity(), |
+ RangeBoundary(0)); |
TEST_RANGE_OP(Range::Shr, -8, 8, 1, 2, RangeBoundary(-4), RangeBoundary(4)); |
TEST_RANGE_OP(Range::Shr, 1, 8, 1, 2, RangeBoundary(0), RangeBoundary(4)); |
- TEST_RANGE_OP(Range::Shr, -16, -8, 1, 2, |
- RangeBoundary(-8), RangeBoundary(-2)); |
+ TEST_RANGE_OP(Range::Shr, -16, -8, 1, 2, RangeBoundary(-8), |
+ RangeBoundary(-2)); |
TEST_RANGE_OP(Range::Shr, 2, 4, -1, 1, RangeBoundary(1), RangeBoundary(4)); |
TEST_RANGE_OP(Range::Shr, kMaxInt64, kMaxInt64, 0, 1, |
RangeBoundary(kMaxInt64 >> 1), RangeBoundary(kMaxInt64)); |
@@ -232,10 +219,9 @@ TEST_CASE(RangeUtils) { |
EXPECT(Range::ConstantAbsMax(&range_i) == 1); |
// RangeBOundary.Equals. |
- EXPECT(RangeBoundary::FromConstant(1).Equals( |
- RangeBoundary::FromConstant(1))); |
- EXPECT(!RangeBoundary::FromConstant(2).Equals( |
- RangeBoundary::FromConstant(1))); |
+ EXPECT(RangeBoundary::FromConstant(1).Equals(RangeBoundary::FromConstant(1))); |
+ EXPECT( |
+ !RangeBoundary::FromConstant(2).Equals(RangeBoundary::FromConstant(1))); |
EXPECT(RangeBoundary::PositiveInfinity().Equals( |
RangeBoundary::PositiveInfinity())); |
EXPECT(!RangeBoundary::PositiveInfinity().Equals( |
@@ -267,11 +253,7 @@ TEST_CASE(RangeBinaryOp) { |
{ |
Range result; |
- Range::BinaryOp(Token::kADD, |
- range_a, |
- range_b, |
- NULL, |
- &result); |
+ Range::BinaryOp(Token::kADD, range_a, range_b, NULL, &result); |
ASSERT(!Range::IsUnknown(&result)); |
EXPECT(result.min().IsNegativeInfinity()); |
EXPECT(result.max().IsPositiveInfinity()); |
@@ -280,16 +262,12 @@ TEST_CASE(RangeBinaryOp) { |
// Test that [5, 10] + [0, 5] = [5, 15]. |
Range* range_c = new Range(RangeBoundary::FromConstant(5), |
RangeBoundary::FromConstant(10)); |
- Range* range_d = new Range(RangeBoundary::FromConstant(0), |
- RangeBoundary::FromConstant(5)); |
+ Range* range_d = |
+ new Range(RangeBoundary::FromConstant(0), RangeBoundary::FromConstant(5)); |
{ |
Range result; |
- Range::BinaryOp(Token::kADD, |
- range_c, |
- range_d, |
- NULL, |
- &result); |
+ Range::BinaryOp(Token::kADD, range_c, range_d, NULL, &result); |
ASSERT(!Range::IsUnknown(&result)); |
EXPECT(result.min().ConstantValue() == 5); |
EXPECT(result.max().ConstantValue() == 15); |
@@ -302,11 +280,7 @@ TEST_CASE(RangeBinaryOp) { |
RangeBoundary::FromConstant(0xf)); |
{ |
Range result; |
- Range::BinaryOp(Token::kBIT_AND, |
- range_e, |
- range_f, |
- NULL, |
- &result); |
+ Range::BinaryOp(Token::kBIT_AND, range_e, range_f, NULL, &result); |
ASSERT(!Range::IsUnknown(&result)); |
EXPECT(result.min().ConstantValue() == 0x0); |
EXPECT(result.max().ConstantValue() == 0xf); |
@@ -318,12 +292,10 @@ TEST_CASE(RangeAdd) { |
#define TEST_RANGE_ADD(l_min, l_max, r_min, r_max, result_min, result_max) \ |
{ \ |
RangeBoundary min, max; \ |
- Range* left_range = new Range( \ |
- RangeBoundary::FromConstant(l_min), \ |
- RangeBoundary::FromConstant(l_max)); \ |
- Range* right_range = new Range( \ |
- RangeBoundary::FromConstant(r_min), \ |
- RangeBoundary::FromConstant(r_max)); \ |
+ Range* left_range = new Range(RangeBoundary::FromConstant(l_min), \ |
+ RangeBoundary::FromConstant(l_max)); \ |
+ Range* right_range = new Range(RangeBoundary::FromConstant(r_min), \ |
+ RangeBoundary::FromConstant(r_max)); \ |
EXPECT(left_range->min().ConstantValue() == l_min); \ |
EXPECT(left_range->max().ConstantValue() == l_max); \ |
EXPECT(right_range->min().ConstantValue() == r_min); \ |
@@ -341,68 +313,56 @@ TEST_CASE(RangeAdd) { |
// [kMaxInt32, kMaxInt32 + 15] + [10, 20] = [kMaxInt32 + 10, kMaxInt32 + 35]. |
TEST_RANGE_ADD(static_cast<int64_t>(kMaxInt32), |
- static_cast<int64_t>(kMaxInt32) + 15, |
- static_cast<int64_t>(10), |
+ static_cast<int64_t>(kMaxInt32) + 15, static_cast<int64_t>(10), |
static_cast<int64_t>(20), |
RangeBoundary(static_cast<int64_t>(kMaxInt32) + 10), |
RangeBoundary(static_cast<int64_t>(kMaxInt32) + 35)); |
// [kMaxInt32 - 15, kMaxInt32 + 15] + [15, -15] = [kMaxInt32, kMaxInt32]. |
TEST_RANGE_ADD(static_cast<int64_t>(kMaxInt32) - 15, |
- static_cast<int64_t>(kMaxInt32) + 15, |
- static_cast<int64_t>(15), |
+ static_cast<int64_t>(kMaxInt32) + 15, static_cast<int64_t>(15), |
static_cast<int64_t>(-15), |
RangeBoundary(static_cast<int64_t>(kMaxInt32)), |
RangeBoundary(static_cast<int64_t>(kMaxInt32))); |
// [kMaxInt32, kMaxInt32 + 15] + [10, kMaxInt64] = [kMaxInt32 + 10, +inf]. |
TEST_RANGE_ADD(static_cast<int64_t>(kMaxInt32), |
- static_cast<int64_t>(kMaxInt32) + 15, |
- static_cast<int64_t>(10), |
+ static_cast<int64_t>(kMaxInt32) + 15, static_cast<int64_t>(10), |
static_cast<int64_t>(kMaxInt64), |
RangeBoundary(static_cast<int64_t>(kMaxInt32) + 10), |
RangeBoundary::PositiveInfinity()); |
// [kMinInt64, kMaxInt32 + 15] + [10, 20] = [kMinInt64 + 10, kMaxInt32 + 35]. |
TEST_RANGE_ADD(static_cast<int64_t>(kMinInt64), |
- static_cast<int64_t>(kMaxInt32) + 15, |
- static_cast<int64_t>(10), |
+ static_cast<int64_t>(kMaxInt32) + 15, static_cast<int64_t>(10), |
static_cast<int64_t>(20), |
RangeBoundary(static_cast<int64_t>(kMinInt64) + 10), |
RangeBoundary(static_cast<int64_t>(kMaxInt32) + 35)); |
// [0, 0] + [kMinInt64, kMaxInt64] = [kMinInt64, kMaxInt64]. |
- TEST_RANGE_ADD(static_cast<int64_t>(0), |
- static_cast<int64_t>(0), |
+ TEST_RANGE_ADD(static_cast<int64_t>(0), static_cast<int64_t>(0), |
static_cast<int64_t>(kMinInt64), |
- static_cast<int64_t>(kMaxInt64), |
- RangeBoundary(kMinInt64), |
+ static_cast<int64_t>(kMaxInt64), RangeBoundary(kMinInt64), |
RangeBoundary(kMaxInt64)); |
// Overflows. |
// [-1, 1] + [kMinInt64, kMaxInt64] = [-inf, +inf]. |
- TEST_RANGE_ADD(static_cast<int64_t>(-1), |
- static_cast<int64_t>(1), |
- static_cast<int64_t>(kMinInt64), |
- static_cast<int64_t>(kMaxInt64), |
- RangeBoundary::NegativeInfinity(), |
- RangeBoundary::PositiveInfinity()); |
+ TEST_RANGE_ADD( |
+ static_cast<int64_t>(-1), static_cast<int64_t>(1), |
+ static_cast<int64_t>(kMinInt64), static_cast<int64_t>(kMaxInt64), |
+ RangeBoundary::NegativeInfinity(), RangeBoundary::PositiveInfinity()); |
// [kMaxInt64, kMaxInt64] + [kMaxInt64, kMaxInt64] = [-inf, +inf]. |
- TEST_RANGE_ADD(static_cast<int64_t>(kMaxInt64), |
- static_cast<int64_t>(kMaxInt64), |
- static_cast<int64_t>(kMaxInt64), |
- static_cast<int64_t>(kMaxInt64), |
- RangeBoundary::NegativeInfinity(), |
- RangeBoundary::PositiveInfinity()); |
+ TEST_RANGE_ADD( |
+ static_cast<int64_t>(kMaxInt64), static_cast<int64_t>(kMaxInt64), |
+ static_cast<int64_t>(kMaxInt64), static_cast<int64_t>(kMaxInt64), |
+ RangeBoundary::NegativeInfinity(), RangeBoundary::PositiveInfinity()); |
// [kMaxInt64, kMaxInt64] + [1, 1] = [-inf, +inf]. |
TEST_RANGE_ADD(static_cast<int64_t>(kMaxInt64), |
- static_cast<int64_t>(kMaxInt64), |
- static_cast<int64_t>(1), |
- static_cast<int64_t>(1), |
- RangeBoundary::NegativeInfinity(), |
+ static_cast<int64_t>(kMaxInt64), static_cast<int64_t>(1), |
+ static_cast<int64_t>(1), RangeBoundary::NegativeInfinity(), |
RangeBoundary::PositiveInfinity()); |
#undef TEST_RANGE_ADD |
@@ -413,12 +373,10 @@ TEST_CASE(RangeSub) { |
#define TEST_RANGE_SUB(l_min, l_max, r_min, r_max, result_min, result_max) \ |
{ \ |
RangeBoundary min, max; \ |
- Range* left_range = new Range( \ |
- RangeBoundary::FromConstant(l_min), \ |
- RangeBoundary::FromConstant(l_max)); \ |
- Range* right_range = new Range( \ |
- RangeBoundary::FromConstant(r_min), \ |
- RangeBoundary::FromConstant(r_max)); \ |
+ Range* left_range = new Range(RangeBoundary::FromConstant(l_min), \ |
+ RangeBoundary::FromConstant(l_max)); \ |
+ Range* right_range = new Range(RangeBoundary::FromConstant(r_min), \ |
+ RangeBoundary::FromConstant(r_max)); \ |
EXPECT(left_range->min().ConstantValue() == l_min); \ |
EXPECT(left_range->max().ConstantValue() == l_max); \ |
EXPECT(right_range->min().ConstantValue() == r_min); \ |
@@ -436,34 +394,28 @@ TEST_CASE(RangeSub) { |
// [kMaxInt32, kMaxInt32 + 15] - [10, 20] = [kMaxInt32 - 20, kMaxInt32 + 5]. |
TEST_RANGE_SUB(static_cast<int64_t>(kMaxInt32), |
- static_cast<int64_t>(kMaxInt32) + 15, |
- static_cast<int64_t>(10), |
+ static_cast<int64_t>(kMaxInt32) + 15, static_cast<int64_t>(10), |
static_cast<int64_t>(20), |
RangeBoundary(static_cast<int64_t>(kMaxInt32) - 20), |
RangeBoundary(static_cast<int64_t>(kMaxInt32) + 5)); |
// [kMintInt64, kMintInt64] - [1, 1] = [-inf, +inf]. |
TEST_RANGE_SUB(static_cast<int64_t>(kMinInt64), |
- static_cast<int64_t>(kMinInt64), |
- static_cast<int64_t>(1), |
- static_cast<int64_t>(1), |
- RangeBoundary::NegativeInfinity(), |
+ static_cast<int64_t>(kMinInt64), static_cast<int64_t>(1), |
+ static_cast<int64_t>(1), RangeBoundary::NegativeInfinity(), |
RangeBoundary::PositiveInfinity()); |
// [1, 1] - [kMintInt64, kMintInt64] = [-inf, +inf]. |
- TEST_RANGE_SUB(static_cast<int64_t>(1), |
- static_cast<int64_t>(1), |
- static_cast<int64_t>(kMinInt64), |
- static_cast<int64_t>(kMinInt64), |
- RangeBoundary::NegativeInfinity(), |
- RangeBoundary::PositiveInfinity()); |
+ TEST_RANGE_SUB( |
+ static_cast<int64_t>(1), static_cast<int64_t>(1), |
+ static_cast<int64_t>(kMinInt64), static_cast<int64_t>(kMinInt64), |
+ RangeBoundary::NegativeInfinity(), RangeBoundary::PositiveInfinity()); |
// [kMaxInt32 + 10, kMaxInt32 + 20] - [-20, -20] = |
// [kMaxInt32 + 30, kMaxInt32 + 40]. |
TEST_RANGE_SUB(static_cast<int64_t>(kMaxInt32) + 10, |
static_cast<int64_t>(kMaxInt32) + 20, |
- static_cast<int64_t>(-20), |
- static_cast<int64_t>(-20), |
+ static_cast<int64_t>(-20), static_cast<int64_t>(-20), |
RangeBoundary(static_cast<int64_t>(kMaxInt32) + 30), |
RangeBoundary(static_cast<int64_t>(kMaxInt32) + 40)); |
@@ -476,12 +428,10 @@ TEST_CASE(RangeAnd) { |
#define TEST_RANGE_AND(l_min, l_max, r_min, r_max, result_min, result_max) \ |
{ \ |
RangeBoundary min, max; \ |
- Range* left_range = new Range( \ |
- RangeBoundary::FromConstant(l_min), \ |
- RangeBoundary::FromConstant(l_max)); \ |
- Range* right_range = new Range( \ |
- RangeBoundary::FromConstant(r_min), \ |
- RangeBoundary::FromConstant(r_max)); \ |
+ Range* left_range = new Range(RangeBoundary::FromConstant(l_min), \ |
+ RangeBoundary::FromConstant(l_max)); \ |
+ Range* right_range = new Range(RangeBoundary::FromConstant(r_min), \ |
+ RangeBoundary::FromConstant(r_max)); \ |
EXPECT(left_range->min().ConstantValue() == l_min); \ |
EXPECT(left_range->max().ConstantValue() == l_max); \ |
EXPECT(right_range->min().ConstantValue() == r_min); \ |
@@ -498,44 +448,32 @@ TEST_CASE(RangeAnd) { |
} |
// [0xff, 0xfff] & [0xf, 0xf] = [0x0, 0xf]. |
- TEST_RANGE_AND(static_cast<int64_t>(0xff), |
- static_cast<int64_t>(0xfff), |
- static_cast<int64_t>(0xf), |
- static_cast<int64_t>(0xf), |
- RangeBoundary(0), |
- RangeBoundary(0xf)); |
+ TEST_RANGE_AND(static_cast<int64_t>(0xff), static_cast<int64_t>(0xfff), |
+ static_cast<int64_t>(0xf), static_cast<int64_t>(0xf), |
+ RangeBoundary(0), RangeBoundary(0xf)); |
// [0xffffffff, 0xffffffff] & [0xfffffffff, 0xfffffffff] = [0x0, 0xfffffffff]. |
- TEST_RANGE_AND(static_cast<int64_t>(0xffffffff), |
- static_cast<int64_t>(0xffffffff), |
- static_cast<int64_t>(0xfffffffff), |
- static_cast<int64_t>(0xfffffffff), |
- RangeBoundary(0), |
- RangeBoundary(static_cast<int64_t>(0xfffffffff))); |
+ TEST_RANGE_AND( |
+ static_cast<int64_t>(0xffffffff), static_cast<int64_t>(0xffffffff), |
+ static_cast<int64_t>(0xfffffffff), static_cast<int64_t>(0xfffffffff), |
+ RangeBoundary(0), RangeBoundary(static_cast<int64_t>(0xfffffffff))); |
// [0xffffffff, 0xffffffff] & [-20, 20] = [0x0, 0xffffffff]. |
TEST_RANGE_AND(static_cast<int64_t>(0xffffffff), |
- static_cast<int64_t>(0xffffffff), |
- static_cast<int64_t>(-20), |
- static_cast<int64_t>(20), |
- RangeBoundary(0), |
+ static_cast<int64_t>(0xffffffff), static_cast<int64_t>(-20), |
+ static_cast<int64_t>(20), RangeBoundary(0), |
RangeBoundary(static_cast<int64_t>(0xffffffff))); |
// [-20, 20] & [0xffffffff, 0xffffffff] = [0x0, 0xffffffff]. |
- TEST_RANGE_AND(static_cast<int64_t>(-20), |
- static_cast<int64_t>(20), |
+ TEST_RANGE_AND(static_cast<int64_t>(-20), static_cast<int64_t>(20), |
static_cast<int64_t>(0xffffffff), |
- static_cast<int64_t>(0xffffffff), |
- RangeBoundary(0), |
+ static_cast<int64_t>(0xffffffff), RangeBoundary(0), |
RangeBoundary(static_cast<int64_t>(0xffffffff))); |
// Test that [-20, 20] & [-20, 20] = [-32, 31]. |
- TEST_RANGE_AND(static_cast<int64_t>(-20), |
- static_cast<int64_t>(20), |
- static_cast<int64_t>(-20), |
- static_cast<int64_t>(20), |
- RangeBoundary(-32), |
- RangeBoundary(31)); |
+ TEST_RANGE_AND(static_cast<int64_t>(-20), static_cast<int64_t>(20), |
+ static_cast<int64_t>(-20), static_cast<int64_t>(20), |
+ RangeBoundary(-32), RangeBoundary(31)); |
#undef TEST_RANGE_AND |
} |
@@ -547,77 +485,77 @@ TEST_CASE(RangeIntersectionMinMax) { |
// Constants. |
// MIN(0, 1) == 0 |
- EXPECT(RangeBoundary::IntersectionMax( |
- RangeBoundary::FromConstant(0), |
- RangeBoundary::FromConstant(1)).ConstantValue() == 0); |
+ EXPECT(RangeBoundary::IntersectionMax(RangeBoundary::FromConstant(0), |
+ RangeBoundary::FromConstant(1)) |
+ .ConstantValue() == 0); |
// MIN(0, -1) == -1 |
- EXPECT(RangeBoundary::IntersectionMax( |
- RangeBoundary::FromConstant(0), |
- RangeBoundary::FromConstant(-1)).ConstantValue() == -1); |
+ EXPECT(RangeBoundary::IntersectionMax(RangeBoundary::FromConstant(0), |
+ RangeBoundary::FromConstant(-1)) |
+ .ConstantValue() == -1); |
// MIN(1, 0) == 0 |
- EXPECT(RangeBoundary::IntersectionMax( |
- RangeBoundary::FromConstant(1), |
- RangeBoundary::FromConstant(0)).ConstantValue() == 0); |
+ EXPECT(RangeBoundary::IntersectionMax(RangeBoundary::FromConstant(1), |
+ RangeBoundary::FromConstant(0)) |
+ .ConstantValue() == 0); |
// MIN(-1, 0) == -1 |
- EXPECT(RangeBoundary::IntersectionMax( |
- RangeBoundary::FromConstant(-1), |
- RangeBoundary::FromConstant(0)).ConstantValue() == -1); |
+ EXPECT(RangeBoundary::IntersectionMax(RangeBoundary::FromConstant(-1), |
+ RangeBoundary::FromConstant(0)) |
+ .ConstantValue() == -1); |
// MAX(0, 1) == 1 |
- EXPECT(RangeBoundary::IntersectionMin( |
- RangeBoundary::FromConstant(0), |
- RangeBoundary::FromConstant(1)).ConstantValue() == 1); |
+ EXPECT(RangeBoundary::IntersectionMin(RangeBoundary::FromConstant(0), |
+ RangeBoundary::FromConstant(1)) |
+ .ConstantValue() == 1); |
// MAX(0, -1) == 0 |
- EXPECT(RangeBoundary::IntersectionMin( |
- RangeBoundary::FromConstant(0), |
- RangeBoundary::FromConstant(-1)).ConstantValue() == 0); |
+ EXPECT(RangeBoundary::IntersectionMin(RangeBoundary::FromConstant(0), |
+ RangeBoundary::FromConstant(-1)) |
+ .ConstantValue() == 0); |
// MAX(1, 0) == 1 |
- EXPECT(RangeBoundary::IntersectionMin( |
- RangeBoundary::FromConstant(1), |
- RangeBoundary::FromConstant(0)).ConstantValue() == 1); |
+ EXPECT(RangeBoundary::IntersectionMin(RangeBoundary::FromConstant(1), |
+ RangeBoundary::FromConstant(0)) |
+ .ConstantValue() == 1); |
// MAX(-1, 0) == 0 |
- EXPECT(RangeBoundary::IntersectionMin( |
- RangeBoundary::FromConstant(-1), |
- RangeBoundary::FromConstant(0)).ConstantValue() == 0); |
+ EXPECT(RangeBoundary::IntersectionMin(RangeBoundary::FromConstant(-1), |
+ RangeBoundary::FromConstant(0)) |
+ .ConstantValue() == 0); |
RangeBoundary n_infinity = RangeBoundary::NegativeInfinity(); |
RangeBoundary p_infinity = RangeBoundary::PositiveInfinity(); |
// Constants vs. infinity. |
- EXPECT(RangeBoundary::IntersectionMin( |
- n_infinity, |
- RangeBoundary::FromConstant(-1)).ConstantValue() == -1); |
+ EXPECT(RangeBoundary::IntersectionMin(n_infinity, |
+ RangeBoundary::FromConstant(-1)) |
+ .ConstantValue() == -1); |
- EXPECT(RangeBoundary::IntersectionMin( |
- RangeBoundary::FromConstant(-1), |
- n_infinity).ConstantValue() == -1); |
+ EXPECT(RangeBoundary::IntersectionMin(RangeBoundary::FromConstant(-1), |
+ n_infinity) |
+ .ConstantValue() == -1); |
- EXPECT(RangeBoundary::IntersectionMin( |
- RangeBoundary::FromConstant(1), |
- n_infinity).ConstantValue() == 1); |
+ EXPECT( |
+ RangeBoundary::IntersectionMin(RangeBoundary::FromConstant(1), n_infinity) |
+ .ConstantValue() == 1); |
- EXPECT(RangeBoundary::IntersectionMin( |
- n_infinity, |
- RangeBoundary::FromConstant(1)).ConstantValue() == 1); |
+ EXPECT( |
+ RangeBoundary::IntersectionMin(n_infinity, RangeBoundary::FromConstant(1)) |
+ .ConstantValue() == 1); |
- EXPECT(RangeBoundary::IntersectionMax( |
- p_infinity, |
- RangeBoundary::FromConstant(-1)).ConstantValue() == -1); |
+ EXPECT(RangeBoundary::IntersectionMax(p_infinity, |
+ RangeBoundary::FromConstant(-1)) |
+ .ConstantValue() == -1); |
- EXPECT(RangeBoundary::IntersectionMax( |
- RangeBoundary::FromConstant(-1), |
- p_infinity).ConstantValue() == -1); |
+ EXPECT(RangeBoundary::IntersectionMax(RangeBoundary::FromConstant(-1), |
+ p_infinity) |
+ .ConstantValue() == -1); |
- EXPECT(RangeBoundary::IntersectionMax( |
- RangeBoundary::FromConstant(1), |
- p_infinity).ConstantValue() == 1); |
+ EXPECT( |
+ RangeBoundary::IntersectionMax(RangeBoundary::FromConstant(1), p_infinity) |
+ .ConstantValue() == 1); |
- EXPECT(RangeBoundary::IntersectionMax( |
- p_infinity, |
- RangeBoundary::FromConstant(1)).ConstantValue() == 1); |
+ EXPECT( |
+ RangeBoundary::IntersectionMax(p_infinity, RangeBoundary::FromConstant(1)) |
+ .ConstantValue() == 1); |
} |
@@ -627,82 +565,66 @@ TEST_CASE(RangeJoinMinMax) { |
const RangeBoundary::RangeSize size = RangeBoundary::kRangeBoundarySmi; |
// Constants. |
- EXPECT(RangeBoundary::JoinMax( |
- RangeBoundary::FromConstant(0), |
- RangeBoundary::FromConstant(1), |
- size).ConstantValue() == 1); |
- EXPECT(RangeBoundary::JoinMax( |
- RangeBoundary::FromConstant(0), |
- RangeBoundary::FromConstant(-1), |
- size).ConstantValue() == 0); |
- EXPECT(RangeBoundary::JoinMax( |
- RangeBoundary::FromConstant(1), |
- RangeBoundary::FromConstant(0), |
- size).ConstantValue() == 1); |
- EXPECT(RangeBoundary::JoinMax( |
- RangeBoundary::FromConstant(-1), |
- RangeBoundary::FromConstant(0), |
- size).ConstantValue() == 0); |
- EXPECT(RangeBoundary::JoinMin( |
- RangeBoundary::FromConstant(0), |
- RangeBoundary::FromConstant(1), |
- size).ConstantValue() == 0); |
- EXPECT(RangeBoundary::JoinMin( |
- RangeBoundary::FromConstant(0), |
- RangeBoundary::FromConstant(-1), |
- size).ConstantValue() == -1); |
- EXPECT(RangeBoundary::JoinMin( |
- RangeBoundary::FromConstant(1), |
- RangeBoundary::FromConstant(0), |
- size).ConstantValue() == 0); |
- EXPECT(RangeBoundary::JoinMin( |
- RangeBoundary::FromConstant(-1), |
- RangeBoundary::FromConstant(0), |
- size).ConstantValue() == -1); |
+ EXPECT(RangeBoundary::JoinMax(RangeBoundary::FromConstant(0), |
+ RangeBoundary::FromConstant(1), size) |
+ .ConstantValue() == 1); |
+ EXPECT(RangeBoundary::JoinMax(RangeBoundary::FromConstant(0), |
+ RangeBoundary::FromConstant(-1), size) |
+ .ConstantValue() == 0); |
+ EXPECT(RangeBoundary::JoinMax(RangeBoundary::FromConstant(1), |
+ RangeBoundary::FromConstant(0), size) |
+ .ConstantValue() == 1); |
+ EXPECT(RangeBoundary::JoinMax(RangeBoundary::FromConstant(-1), |
+ RangeBoundary::FromConstant(0), size) |
+ .ConstantValue() == 0); |
+ EXPECT(RangeBoundary::JoinMin(RangeBoundary::FromConstant(0), |
+ RangeBoundary::FromConstant(1), size) |
+ .ConstantValue() == 0); |
+ EXPECT(RangeBoundary::JoinMin(RangeBoundary::FromConstant(0), |
+ RangeBoundary::FromConstant(-1), size) |
+ .ConstantValue() == -1); |
+ EXPECT(RangeBoundary::JoinMin(RangeBoundary::FromConstant(1), |
+ RangeBoundary::FromConstant(0), size) |
+ .ConstantValue() == 0); |
+ EXPECT(RangeBoundary::JoinMin(RangeBoundary::FromConstant(-1), |
+ RangeBoundary::FromConstant(0), size) |
+ .ConstantValue() == -1); |
RangeBoundary n_infinity = RangeBoundary::NegativeInfinity(); |
RangeBoundary p_infinity = RangeBoundary::PositiveInfinity(); |
// Constants vs. infinity. |
- EXPECT(RangeBoundary::JoinMin( |
- n_infinity, |
- RangeBoundary::FromConstant(-1), |
- size).IsMinimumOrBelow(size)); |
- |
- EXPECT(RangeBoundary::JoinMin( |
- RangeBoundary::FromConstant(-1), |
- n_infinity, |
- size).IsMinimumOrBelow(size)); |
- |
- EXPECT(RangeBoundary::JoinMin( |
- RangeBoundary::FromConstant(1), |
- n_infinity, |
- size).IsMinimumOrBelow(size)); |
- |
- EXPECT(RangeBoundary::JoinMin( |
- n_infinity, |
- RangeBoundary::FromConstant(1), |
- size).IsMinimumOrBelow(size)); |
- |
- EXPECT(RangeBoundary::JoinMax( |
- p_infinity, |
- RangeBoundary::FromConstant(-1), |
- size).IsMaximumOrAbove(size)); |
- |
- EXPECT(RangeBoundary::JoinMax( |
- RangeBoundary::FromConstant(-1), |
- p_infinity, |
- size).IsMaximumOrAbove(size)); |
- |
- EXPECT(RangeBoundary::JoinMax( |
- RangeBoundary::FromConstant(1), |
- p_infinity, |
- size).IsMaximumOrAbove(size)); |
- |
- EXPECT(RangeBoundary::JoinMax( |
- p_infinity, |
- RangeBoundary::FromConstant(1), |
- size).IsMaximumOrAbove(size)); |
+ EXPECT( |
+ RangeBoundary::JoinMin(n_infinity, RangeBoundary::FromConstant(-1), size) |
+ .IsMinimumOrBelow(size)); |
+ |
+ EXPECT( |
+ RangeBoundary::JoinMin(RangeBoundary::FromConstant(-1), n_infinity, size) |
+ .IsMinimumOrBelow(size)); |
+ |
+ EXPECT( |
+ RangeBoundary::JoinMin(RangeBoundary::FromConstant(1), n_infinity, size) |
+ .IsMinimumOrBelow(size)); |
+ |
+ EXPECT( |
+ RangeBoundary::JoinMin(n_infinity, RangeBoundary::FromConstant(1), size) |
+ .IsMinimumOrBelow(size)); |
+ |
+ EXPECT( |
+ RangeBoundary::JoinMax(p_infinity, RangeBoundary::FromConstant(-1), size) |
+ .IsMaximumOrAbove(size)); |
+ |
+ EXPECT( |
+ RangeBoundary::JoinMax(RangeBoundary::FromConstant(-1), p_infinity, size) |
+ .IsMaximumOrAbove(size)); |
+ |
+ EXPECT( |
+ RangeBoundary::JoinMax(RangeBoundary::FromConstant(1), p_infinity, size) |
+ .IsMaximumOrAbove(size)); |
+ |
+ EXPECT( |
+ RangeBoundary::JoinMax(p_infinity, RangeBoundary::FromConstant(1), size) |
+ .IsMaximumOrAbove(size)); |
} |
} // namespace dart |