Index: test/unittests/compiler/simplified-operator-reducer-unittest.cc |
diff --git a/test/unittests/compiler/simplified-operator-reducer-unittest.cc b/test/unittests/compiler/simplified-operator-reducer-unittest.cc |
index f5ae91d7c1482df0a31bec3db5ad60a8307aa008..cde85133f336c8f0dc4875901b8a76773ee5a65a 100644 |
--- a/test/unittests/compiler/simplified-operator-reducer-unittest.cc |
+++ b/test/unittests/compiler/simplified-operator-reducer-unittest.cc |
@@ -97,6 +97,10 @@ const double kNaNs[] = {-std::numeric_limits<double>::quiet_NaN(), |
bit_cast<double>(V8_UINT64_C(0x7FFFFFFFFFFFFFFF)), |
bit_cast<double>(V8_UINT64_C(0xFFFFFFFFFFFFFFFF))}; |
+const CheckForMinusZeroMode kCheckForMinusZeroModes[] = { |
+ CheckForMinusZeroMode::kDontCheckForMinusZero, |
+ CheckForMinusZeroMode::kCheckForMinusZero}; |
+ |
} // namespace |
@@ -187,11 +191,13 @@ TEST_F(SimplifiedOperatorReducerTest, ChangeTaggedToBitWithChangeBitToTagged) { |
// ChangeFloat64ToTagged |
TEST_F(SimplifiedOperatorReducerTest, ChangeFloat64ToTaggedWithConstant) { |
- TRACED_FOREACH(double, n, kFloat64Values) { |
- Reduction reduction = Reduce(graph()->NewNode( |
- simplified()->ChangeFloat64ToTagged(), Float64Constant(n))); |
- ASSERT_TRUE(reduction.Changed()); |
- EXPECT_THAT(reduction.replacement(), IsNumberConstant(BitEq(n))); |
+ TRACED_FOREACH(CheckForMinusZeroMode, mode, kCheckForMinusZeroModes) { |
+ TRACED_FOREACH(double, n, kFloat64Values) { |
+ Reduction reduction = Reduce(graph()->NewNode( |
+ simplified()->ChangeFloat64ToTagged(mode), Float64Constant(n))); |
+ ASSERT_TRUE(reduction.Changed()); |
+ EXPECT_THAT(reduction.replacement(), IsNumberConstant(BitEq(n))); |
+ } |
} |
} |
@@ -216,11 +222,13 @@ TEST_F(SimplifiedOperatorReducerTest, ChangeInt32ToTaggedWithConstant) { |
TEST_F(SimplifiedOperatorReducerTest, |
ChangeTaggedToFloat64WithChangeFloat64ToTagged) { |
Node* param0 = Parameter(0); |
- Reduction reduction = Reduce(graph()->NewNode( |
- simplified()->ChangeTaggedToFloat64(), |
- graph()->NewNode(simplified()->ChangeFloat64ToTagged(), param0))); |
- ASSERT_TRUE(reduction.Changed()); |
- EXPECT_EQ(param0, reduction.replacement()); |
+ TRACED_FOREACH(CheckForMinusZeroMode, mode, kCheckForMinusZeroModes) { |
+ Reduction reduction = Reduce(graph()->NewNode( |
+ simplified()->ChangeTaggedToFloat64(), |
+ graph()->NewNode(simplified()->ChangeFloat64ToTagged(mode), param0))); |
+ ASSERT_TRUE(reduction.Changed()); |
+ EXPECT_EQ(param0, reduction.replacement()); |
+ } |
} |
TEST_F(SimplifiedOperatorReducerTest, |
@@ -271,11 +279,13 @@ TEST_F(SimplifiedOperatorReducerTest, ChangeTaggedToFloat64WithNaNConstant) { |
TEST_F(SimplifiedOperatorReducerTest, |
ChangeTaggedToInt32WithChangeFloat64ToTagged) { |
Node* param0 = Parameter(0); |
- Reduction reduction = Reduce(graph()->NewNode( |
- simplified()->ChangeTaggedToInt32(), |
- graph()->NewNode(simplified()->ChangeFloat64ToTagged(), param0))); |
- ASSERT_TRUE(reduction.Changed()); |
- EXPECT_THAT(reduction.replacement(), IsChangeFloat64ToInt32(param0)); |
+ TRACED_FOREACH(CheckForMinusZeroMode, mode, kCheckForMinusZeroModes) { |
+ Reduction reduction = Reduce(graph()->NewNode( |
+ simplified()->ChangeTaggedToInt32(), |
+ graph()->NewNode(simplified()->ChangeFloat64ToTagged(mode), param0))); |
+ ASSERT_TRUE(reduction.Changed()); |
+ EXPECT_THAT(reduction.replacement(), IsChangeFloat64ToInt32(param0)); |
+ } |
} |
TEST_F(SimplifiedOperatorReducerTest, |
@@ -295,11 +305,13 @@ TEST_F(SimplifiedOperatorReducerTest, |
TEST_F(SimplifiedOperatorReducerTest, |
ChangeTaggedToUint32WithChangeFloat64ToTagged) { |
Node* param0 = Parameter(0); |
- Reduction reduction = Reduce(graph()->NewNode( |
- simplified()->ChangeTaggedToUint32(), |
- graph()->NewNode(simplified()->ChangeFloat64ToTagged(), param0))); |
- ASSERT_TRUE(reduction.Changed()); |
- EXPECT_THAT(reduction.replacement(), IsChangeFloat64ToUint32(param0)); |
+ TRACED_FOREACH(CheckForMinusZeroMode, mode, kCheckForMinusZeroModes) { |
+ Reduction reduction = Reduce(graph()->NewNode( |
+ simplified()->ChangeTaggedToUint32(), |
+ graph()->NewNode(simplified()->ChangeFloat64ToTagged(mode), param0))); |
+ ASSERT_TRUE(reduction.Changed()); |
+ EXPECT_THAT(reduction.replacement(), IsChangeFloat64ToUint32(param0)); |
+ } |
} |
TEST_F(SimplifiedOperatorReducerTest, |
@@ -319,11 +331,13 @@ TEST_F(SimplifiedOperatorReducerTest, |
TEST_F(SimplifiedOperatorReducerTest, |
TruncateTaggedToWord3WithChangeFloat64ToTagged) { |
Node* param0 = Parameter(0); |
- Reduction reduction = Reduce(graph()->NewNode( |
- simplified()->TruncateTaggedToWord32(), |
- graph()->NewNode(simplified()->ChangeFloat64ToTagged(), param0))); |
- ASSERT_TRUE(reduction.Changed()); |
- EXPECT_THAT(reduction.replacement(), IsTruncateFloat64ToWord32(param0)); |
+ TRACED_FOREACH(CheckForMinusZeroMode, mode, kCheckForMinusZeroModes) { |
+ Reduction reduction = Reduce(graph()->NewNode( |
+ simplified()->TruncateTaggedToWord32(), |
+ graph()->NewNode(simplified()->ChangeFloat64ToTagged(mode), param0))); |
+ ASSERT_TRUE(reduction.Changed()); |
+ EXPECT_THAT(reduction.replacement(), IsTruncateFloat64ToWord32(param0)); |
+ } |
} |
TEST_F(SimplifiedOperatorReducerTest, TruncateTaggedToWord32WithConstant) { |