Index: test/unittests/compiler/machine-operator-reducer-unittest.cc |
diff --git a/test/unittests/compiler/machine-operator-reducer-unittest.cc b/test/unittests/compiler/machine-operator-reducer-unittest.cc |
index 2feba2ef7f56f7f699e386b340d25dec2376a2a5..8b65e043f50f128fe227a4af57bc78fbcd6d3a5c 100644 |
--- a/test/unittests/compiler/machine-operator-reducer-unittest.cc |
+++ b/test/unittests/compiler/machine-operator-reducer-unittest.cc |
@@ -236,10 +236,6 @@ const uint32_t kUint32Values[] = { |
0x00003fff, 0x00001fff, 0x00000fff, 0x000007ff, 0x000003ff, 0x000001ff}; |
-const TruncationMode kTruncationModes[] = {TruncationMode::kJavaScript, |
- TruncationMode::kRoundToZero}; |
- |
- |
struct ComparisonBinaryOperator { |
const Operator* (MachineOperatorBuilder::*constructor)(); |
const char* constructor_name; |
@@ -413,51 +409,28 @@ TEST_F(MachineOperatorReducerTest, TruncateFloat64ToFloat32WithConstant) { |
// ----------------------------------------------------------------------------- |
-// TruncateFloat64ToInt32 |
- |
+// TruncateFloat64ToWord32 |
TEST_F(MachineOperatorReducerTest, |
- TruncateFloat64ToInt32WithChangeInt32ToFloat64) { |
- TRACED_FOREACH(TruncationMode, mode, kTruncationModes) { |
- Node* value = Parameter(0); |
- Reduction reduction = Reduce(graph()->NewNode( |
- machine()->TruncateFloat64ToInt32(mode), |
- graph()->NewNode(machine()->ChangeInt32ToFloat64(), value))); |
- ASSERT_TRUE(reduction.Changed()); |
- EXPECT_EQ(value, reduction.replacement()); |
- } |
+ TruncateFloat64ToWord32WithChangeInt32ToFloat64) { |
+ Node* value = Parameter(0); |
+ Reduction reduction = Reduce(graph()->NewNode( |
+ machine()->TruncateFloat64ToWord32(), |
+ graph()->NewNode(machine()->ChangeInt32ToFloat64(), value))); |
+ ASSERT_TRUE(reduction.Changed()); |
+ EXPECT_EQ(value, reduction.replacement()); |
} |
- |
-TEST_F(MachineOperatorReducerTest, TruncateFloat64ToInt32WithConstant) { |
+TEST_F(MachineOperatorReducerTest, TruncateFloat64ToWord32WithConstant) { |
TRACED_FOREACH(double, x, kFloat64Values) { |
Reduction reduction = Reduce(graph()->NewNode( |
- machine()->TruncateFloat64ToInt32(TruncationMode::kJavaScript), |
- Float64Constant(x))); |
+ machine()->TruncateFloat64ToWord32(), Float64Constant(x))); |
ASSERT_TRUE(reduction.Changed()); |
EXPECT_THAT(reduction.replacement(), IsInt32Constant(DoubleToInt32(x))); |
} |
} |
-TEST_F(MachineOperatorReducerTest, TruncateFloat64ToInt32WithPhi) { |
- Node* const p0 = Parameter(0); |
- Node* const p1 = Parameter(1); |
- Node* const merge = graph()->start(); |
- TRACED_FOREACH(TruncationMode, mode, kTruncationModes) { |
- Reduction reduction = Reduce(graph()->NewNode( |
- machine()->TruncateFloat64ToInt32(mode), |
- graph()->NewNode(common()->Phi(MachineRepresentation::kFloat64, 2), p0, |
- p1, merge))); |
- ASSERT_TRUE(reduction.Changed()); |
- EXPECT_THAT( |
- reduction.replacement(), |
- IsPhi(MachineRepresentation::kWord32, IsTruncateFloat64ToInt32(p0), |
- IsTruncateFloat64ToInt32(p1), merge)); |
- } |
-} |
- |
- |
// ----------------------------------------------------------------------------- |
// TruncateInt64ToInt32 |
@@ -485,8 +458,30 @@ TEST_F(MachineOperatorReducerTest, TruncateInt64ToInt32WithConstant) { |
// ----------------------------------------------------------------------------- |
-// Word32And |
+// RoundFloat64ToInt32 |
+ |
+TEST_F(MachineOperatorReducerTest, |
+ RoundFloat64ToInt32WithChangeInt32ToFloat64) { |
+ Node* value = Parameter(0); |
+ Reduction reduction = Reduce(graph()->NewNode( |
+ machine()->RoundFloat64ToInt32(), |
+ graph()->NewNode(machine()->ChangeInt32ToFloat64(), value))); |
+ ASSERT_TRUE(reduction.Changed()); |
+ EXPECT_EQ(value, reduction.replacement()); |
+} |
+ |
+TEST_F(MachineOperatorReducerTest, RoundFloat64ToInt32WithConstant) { |
+ TRACED_FOREACH(double, x, kFloat64Values) { |
+ Reduction reduction = Reduce( |
+ graph()->NewNode(machine()->RoundFloat64ToInt32(), Float64Constant(x))); |
+ ASSERT_TRUE(reduction.Changed()); |
+ EXPECT_THAT(reduction.replacement(), |
+ IsInt32Constant(static_cast<int32_t>(x))); |
+ } |
+} |
+// ----------------------------------------------------------------------------- |
+// Word32And |
TEST_F(MachineOperatorReducerTest, Word32AndWithWord32ShlWithConstant) { |
Node* const p0 = Parameter(0); |