diff options
Diffstat (limited to 'deps/v8/test/unittests/compiler/machine-operator-reducer-unittest.cc')
-rw-r--r-- | deps/v8/test/unittests/compiler/machine-operator-reducer-unittest.cc | 72 |
1 files changed, 68 insertions, 4 deletions
diff --git a/deps/v8/test/unittests/compiler/machine-operator-reducer-unittest.cc b/deps/v8/test/unittests/compiler/machine-operator-reducer-unittest.cc index b14e9d392d..13a5b6f3bb 100644 --- a/deps/v8/test/unittests/compiler/machine-operator-reducer-unittest.cc +++ b/deps/v8/test/unittests/compiler/machine-operator-reducer-unittest.cc @@ -7,6 +7,7 @@ #include "src/compiler/js-graph.h" #include "src/compiler/machine-operator-reducer.h" #include "src/compiler/typer.h" +#include "src/conversions-inl.h" #include "test/unittests/compiler/graph-unittest.h" #include "test/unittests/compiler/node-test-utils.h" #include "testing/gmock-support.h" @@ -1453,6 +1454,19 @@ TEST_F(MachineOperatorReducerTest, Float64EqualWithFloat32Conversions) { } +TEST_F(MachineOperatorReducerTest, Float64EqualWithFloat32Constant) { + Node* const p0 = Parameter(0); + TRACED_FOREACH(float, x, kFloat32Values) { + Reduction r = Reduce(graph()->NewNode( + machine()->Float64Equal(), + graph()->NewNode(machine()->ChangeFloat32ToFloat64(), p0), + Float64Constant(x))); + ASSERT_TRUE(r.Changed()); + EXPECT_THAT(r.replacement(), IsFloat32Equal(p0, IsFloat32Constant(x))); + } +} + + // ----------------------------------------------------------------------------- // Float64LessThan @@ -1469,6 +1483,30 @@ TEST_F(MachineOperatorReducerTest, Float64LessThanWithFloat32Conversions) { } +TEST_F(MachineOperatorReducerTest, Float64LessThanWithFloat32Constant) { + Node* const p0 = Parameter(0); + { + TRACED_FOREACH(float, x, kFloat32Values) { + Reduction r = Reduce(graph()->NewNode( + machine()->Float64LessThan(), + graph()->NewNode(machine()->ChangeFloat32ToFloat64(), p0), + Float64Constant(x))); + ASSERT_TRUE(r.Changed()); + EXPECT_THAT(r.replacement(), IsFloat32LessThan(p0, IsFloat32Constant(x))); + } + } + { + TRACED_FOREACH(float, x, kFloat32Values) { + Reduction r = Reduce(graph()->NewNode( + machine()->Float64LessThan(), Float64Constant(x), + graph()->NewNode(machine()->ChangeFloat32ToFloat64(), p0))); + ASSERT_TRUE(r.Changed()); + EXPECT_THAT(r.replacement(), IsFloat32LessThan(IsFloat32Constant(x), p0)); + } + } +} + + // ----------------------------------------------------------------------------- // Float64LessThanOrEqual @@ -1486,12 +1524,38 @@ TEST_F(MachineOperatorReducerTest, } +TEST_F(MachineOperatorReducerTest, Float64LessThanOrEqualWithFloat32Constant) { + Node* const p0 = Parameter(0); + { + TRACED_FOREACH(float, x, kFloat32Values) { + Reduction r = Reduce(graph()->NewNode( + machine()->Float64LessThanOrEqual(), + graph()->NewNode(machine()->ChangeFloat32ToFloat64(), p0), + Float64Constant(x))); + ASSERT_TRUE(r.Changed()); + EXPECT_THAT(r.replacement(), + IsFloat32LessThanOrEqual(p0, IsFloat32Constant(x))); + } + } + { + TRACED_FOREACH(float, x, kFloat32Values) { + Reduction r = Reduce(graph()->NewNode( + machine()->Float64LessThanOrEqual(), Float64Constant(x), + graph()->NewNode(machine()->ChangeFloat32ToFloat64(), p0))); + ASSERT_TRUE(r.Changed()); + EXPECT_THAT(r.replacement(), + IsFloat32LessThanOrEqual(IsFloat32Constant(x), p0)); + } + } +} + + // ----------------------------------------------------------------------------- // Store TEST_F(MachineOperatorReducerTest, StoreRepWord8WithWord32And) { - const StoreRepresentation rep(kRepWord8, kNoWriteBarrier); + const StoreRepresentation rep(kMachUint8, kNoWriteBarrier); Node* const base = Parameter(0); Node* const index = Parameter(1); Node* const value = Parameter(2); @@ -1513,7 +1577,7 @@ TEST_F(MachineOperatorReducerTest, StoreRepWord8WithWord32And) { TEST_F(MachineOperatorReducerTest, StoreRepWord8WithWord32SarAndWord32Shl) { - const StoreRepresentation rep(kRepWord8, kNoWriteBarrier); + const StoreRepresentation rep(kMachUint8, kNoWriteBarrier); Node* const base = Parameter(0); Node* const index = Parameter(1); Node* const value = Parameter(2); @@ -1537,7 +1601,7 @@ TEST_F(MachineOperatorReducerTest, StoreRepWord8WithWord32SarAndWord32Shl) { TEST_F(MachineOperatorReducerTest, StoreRepWord16WithWord32And) { - const StoreRepresentation rep(kRepWord16, kNoWriteBarrier); + const StoreRepresentation rep(kMachUint16, kNoWriteBarrier); Node* const base = Parameter(0); Node* const index = Parameter(1); Node* const value = Parameter(2); @@ -1559,7 +1623,7 @@ TEST_F(MachineOperatorReducerTest, StoreRepWord16WithWord32And) { TEST_F(MachineOperatorReducerTest, StoreRepWord16WithWord32SarAndWord32Shl) { - const StoreRepresentation rep(kRepWord16, kNoWriteBarrier); + const StoreRepresentation rep(kMachUint16, kNoWriteBarrier); Node* const base = Parameter(0); Node* const index = Parameter(1); Node* const value = Parameter(2); |