| 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);
|
|
|