Index: test/cctest/compiler/test-simplified-lowering.cc |
diff --git a/test/cctest/compiler/test-simplified-lowering.cc b/test/cctest/compiler/test-simplified-lowering.cc |
index 47acbe1a9b02d4a88f58e76ea80988860c6068e2..e77f57a318cb54735ca08c2f2c7b3bbae661889d 100644 |
--- a/test/cctest/compiler/test-simplified-lowering.cc |
+++ b/test/cctest/compiler/test-simplified-lowering.cc |
@@ -1720,11 +1720,11 @@ TEST(NumberDivide_TruncatingToInt32) { |
TestingGraph t(Type::Signed32()); |
Node* k = t.jsgraph.Constant(constants[i]); |
Node* div = t.graph()->NewNode(t.simplified()->NumberDivide(), t.p0, k); |
- Node* trunc = t.graph()->NewNode(t.simplified()->NumberToInt32(), div); |
- t.Return(trunc); |
+ Node* use = t.Use(div, kMachInt32); |
+ t.Return(use); |
t.Lower(); |
- CHECK_EQ(IrOpcode::kInt32Div, div->opcode()); |
+ CHECK_EQ(IrOpcode::kInt32Div, use->InputAt(0)->opcode()); |
} |
} |
@@ -1761,11 +1761,11 @@ TEST(NumberDivide_TruncatingToUint32) { |
TestingGraph t(Type::Unsigned32()); |
Node* k = t.jsgraph.Constant(constants[i]); |
Node* div = t.graph()->NewNode(t.simplified()->NumberDivide(), t.p0, k); |
- Node* trunc = t.graph()->NewNode(t.simplified()->NumberToUint32(), div); |
- t.Return(trunc); |
+ Node* use = t.Use(div, kMachUint32); |
+ t.Return(use); |
t.Lower(); |
- CHECK_EQ(IrOpcode::kUint32Div, div->opcode()); |
+ CHECK_EQ(IrOpcode::kUint32Div, use->InputAt(0)->opcode()); |
} |
} |
@@ -1795,28 +1795,39 @@ TEST(RunNumberDivide_TruncatingToUint32) { |
TEST(NumberDivide_BadConstants) { |
- int32_t constants[] = {-1, 0}; |
+ { |
+ TestingGraph t(Type::Signed32()); |
+ Node* k = t.jsgraph.Constant(-1); |
+ Node* div = t.graph()->NewNode(t.simplified()->NumberDivide(), t.p0, k); |
+ Node* use = t.Use(div, kMachInt32); |
+ t.Return(use); |
+ t.Lower(); |
- for (size_t i = 0; i < arraysize(constants); i++) { |
+ CHECK_EQ(IrOpcode::kInt32Sub, use->InputAt(0)->opcode()); |
+ } |
+ |
+ { |
TestingGraph t(Type::Signed32()); |
- Node* k = t.jsgraph.Constant(constants[i]); |
+ Node* k = t.jsgraph.Constant(0); |
Node* div = t.graph()->NewNode(t.simplified()->NumberDivide(), t.p0, k); |
- Node* trunc = t.graph()->NewNode(t.simplified()->NumberToInt32(), div); |
- t.Return(trunc); |
+ Node* use = t.Use(div, kMachInt32); |
+ t.Return(use); |
t.Lower(); |
- CHECK_EQ(IrOpcode::kFloat64Div, div->opcode()); |
+ CHECK_EQ(IrOpcode::kInt32Constant, use->InputAt(0)->opcode()); |
+ CHECK_EQ(0, OpParameter<int32_t>(use->InputAt(0))); |
} |
{ |
TestingGraph t(Type::Unsigned32()); |
Node* k = t.jsgraph.Constant(0); |
Node* div = t.graph()->NewNode(t.simplified()->NumberDivide(), t.p0, k); |
- Node* trunc = t.graph()->NewNode(t.simplified()->NumberToUint32(), div); |
- t.Return(trunc); |
+ Node* use = t.Use(div, kMachUint32); |
+ t.Return(use); |
t.Lower(); |
- CHECK_EQ(IrOpcode::kFloat64Div, div->opcode()); |
+ CHECK_EQ(IrOpcode::kInt32Constant, use->InputAt(0)->opcode()); |
+ CHECK_EQ(0, OpParameter<int32_t>(use->InputAt(0))); |
} |
} |
@@ -1828,11 +1839,11 @@ TEST(NumberModulus_TruncatingToInt32) { |
TestingGraph t(Type::Signed32()); |
Node* k = t.jsgraph.Constant(constants[i]); |
Node* mod = t.graph()->NewNode(t.simplified()->NumberModulus(), t.p0, k); |
- Node* trunc = t.graph()->NewNode(t.simplified()->NumberToInt32(), mod); |
- t.Return(trunc); |
+ Node* use = t.Use(mod, kMachInt32); |
+ t.Return(use); |
t.Lower(); |
- CHECK_EQ(IrOpcode::kInt32Mod, mod->opcode()); |
+ CHECK_EQ(IrOpcode::kInt32Mod, use->InputAt(0)->opcode()); |
} |
} |
@@ -1870,10 +1881,10 @@ TEST(NumberModulus_TruncatingToUint32) { |
Node* k = t.jsgraph.Constant(constants[i]); |
Node* mod = t.graph()->NewNode(t.simplified()->NumberModulus(), t.p0, k); |
Node* trunc = t.graph()->NewNode(t.simplified()->NumberToUint32(), mod); |
- t.Return(trunc); |
+ Node* ret = t.Return(trunc); |
t.Lower(); |
- CHECK_EQ(IrOpcode::kUint32Mod, mod->opcode()); |
+ CHECK_EQ(IrOpcode::kUint32Mod, ret->InputAt(0)->opcode()); |
} |
} |
@@ -1916,45 +1927,3 @@ TEST(NumberModulus_Int32) { |
CHECK_EQ(IrOpcode::kFloat64Mod, mod->opcode()); // Pesky -0 behavior. |
} |
} |
- |
- |
-TEST(NumberModulus_Uint32) { |
- double constants[] = {1, 3, 100, 1000, 100998348}; |
- |
- for (size_t i = 0; i < arraysize(constants); i++) { |
- TestingGraph t(Type::Unsigned32()); |
- Node* k = t.jsgraph.Constant(constants[i]); |
- Node* mod = t.graph()->NewNode(t.simplified()->NumberModulus(), t.p0, k); |
- t.Return(mod); |
- t.Lower(); |
- |
- CHECK_EQ(IrOpcode::kUint32Mod, mod->opcode()); |
- } |
-} |
- |
- |
-TEST(NumberModulus_BadConstants) { |
- int32_t constants[] = {-1, 0}; |
- |
- for (size_t i = 0; i < arraysize(constants); i++) { |
- TestingGraph t(Type::Signed32()); |
- Node* k = t.jsgraph.Constant(constants[i]); |
- Node* mod = t.graph()->NewNode(t.simplified()->NumberModulus(), t.p0, k); |
- Node* trunc = t.graph()->NewNode(t.simplified()->NumberToInt32(), mod); |
- t.Return(trunc); |
- t.Lower(); |
- |
- CHECK_EQ(IrOpcode::kFloat64Mod, mod->opcode()); |
- } |
- |
- { |
- TestingGraph t(Type::Unsigned32()); |
- Node* k = t.jsgraph.Constant(0); |
- Node* mod = t.graph()->NewNode(t.simplified()->NumberModulus(), t.p0, k); |
- Node* trunc = t.graph()->NewNode(t.simplified()->NumberToUint32(), mod); |
- t.Return(trunc); |
- t.Lower(); |
- |
- CHECK_EQ(IrOpcode::kFloat64Mod, mod->opcode()); |
- } |
-} |