Index: test/cctest/compiler/test-representation-change.cc |
diff --git a/test/cctest/compiler/test-representation-change.cc b/test/cctest/compiler/test-representation-change.cc |
index 2994daf6941209fbb35f5df36d01d6080ce05433..ef85c0743cb3d73012593e6b65047d1f408b96a9 100644 |
--- a/test/cctest/compiler/test-representation-change.cc |
+++ b/test/cctest/compiler/test-representation-change.cc |
@@ -137,138 +137,65 @@ TEST(BoolToBit_constant) { |
r.CheckInt32Constant(false_bit, 0); |
} |
- |
-TEST(BitToBool_constant) { |
- RepresentationChangerTester r; |
- |
- for (int i = -5; i < 5; i++) { |
- Node* node = r.jsgraph()->Int32Constant(i); |
- Node* use = r.Return(node); |
- Node* val = r.changer()->GetRepresentationFor( |
- node, MachineRepresentation::kBit, Type::Boolean(), use, |
- UseInfo(MachineRepresentation::kTagged, Truncation::None())); |
- r.CheckHeapConstant(val, i == 0 ? r.isolate()->heap()->false_value() |
- : r.isolate()->heap()->true_value()); |
- } |
-} |
- |
- |
TEST(ToTagged_constant) { |
RepresentationChangerTester r; |
- { |
- FOR_FLOAT64_INPUTS(i) { |
- Node* n = r.jsgraph()->Float64Constant(*i); |
- Node* use = r.Return(n); |
- Node* c = r.changer()->GetRepresentationFor( |
- n, MachineRepresentation::kFloat64, Type::None(), use, |
- UseInfo(MachineRepresentation::kTagged, Truncation::None())); |
- r.CheckNumberConstant(c, *i); |
- } |
- } |
- |
- { |
- FOR_FLOAT64_INPUTS(i) { |
- Node* n = r.jsgraph()->Constant(*i); |
- Node* use = r.Return(n); |
- Node* c = r.changer()->GetRepresentationFor( |
- n, MachineRepresentation::kFloat64, Type::None(), use, |
- UseInfo(MachineRepresentation::kTagged, Truncation::None())); |
- r.CheckNumberConstant(c, *i); |
- } |
- } |
- |
- { |
- FOR_FLOAT32_INPUTS(i) { |
- Node* n = r.jsgraph()->Float32Constant(*i); |
- Node* use = r.Return(n); |
- Node* c = r.changer()->GetRepresentationFor( |
- n, MachineRepresentation::kFloat32, Type::None(), use, |
- UseInfo(MachineRepresentation::kTagged, Truncation::None())); |
- r.CheckNumberConstant(c, *i); |
- } |
+ for (double i : ValueHelper::float64_vector()) { |
+ Node* n = r.jsgraph()->Constant(i); |
+ Node* use = r.Return(n); |
+ Node* c = r.changer()->GetRepresentationFor( |
+ n, MachineRepresentation::kFloat64, Type::None(), use, |
+ UseInfo(MachineRepresentation::kTagged, Truncation::None())); |
+ r.CheckNumberConstant(c, i); |
} |
- { |
- FOR_INT32_INPUTS(i) { |
- Node* n = r.jsgraph()->Int32Constant(*i); |
- Node* use = r.Return(n); |
- Node* c = r.changer()->GetRepresentationFor( |
- n, MachineRepresentation::kWord32, Type::Signed32(), use, |
- UseInfo(MachineRepresentation::kTagged, Truncation::None())); |
- r.CheckNumberConstant(c, *i); |
- } |
+ for (int i : ValueHelper::int32_vector()) { |
+ Node* n = r.jsgraph()->Constant(i); |
+ Node* use = r.Return(n); |
+ Node* c = r.changer()->GetRepresentationFor( |
+ n, MachineRepresentation::kWord32, Type::Signed32(), use, |
+ UseInfo(MachineRepresentation::kTagged, Truncation::None())); |
+ r.CheckNumberConstant(c, i); |
} |
- { |
- FOR_UINT32_INPUTS(i) { |
- Node* n = r.jsgraph()->Int32Constant(*i); |
- Node* use = r.Return(n); |
- Node* c = r.changer()->GetRepresentationFor( |
- n, MachineRepresentation::kWord32, Type::Unsigned32(), use, |
- UseInfo(MachineRepresentation::kTagged, Truncation::None())); |
- r.CheckNumberConstant(c, *i); |
- } |
+ for (uint32_t i : ValueHelper::uint32_vector()) { |
+ Node* n = r.jsgraph()->Constant(i); |
+ Node* use = r.Return(n); |
+ Node* c = r.changer()->GetRepresentationFor( |
+ n, MachineRepresentation::kWord32, Type::Unsigned32(), use, |
+ UseInfo(MachineRepresentation::kTagged, Truncation::None())); |
+ r.CheckNumberConstant(c, i); |
} |
} |
- |
TEST(ToFloat64_constant) { |
RepresentationChangerTester r; |
- { |
- FOR_FLOAT64_INPUTS(i) { |
- Node* n = r.jsgraph()->Float64Constant(*i); |
- Node* use = r.Return(n); |
- Node* c = r.changer()->GetRepresentationFor( |
- n, MachineRepresentation::kFloat64, Type::None(), use, |
- UseInfo(MachineRepresentation::kFloat64, Truncation::None())); |
- CHECK_EQ(n, c); |
- } |
- } |
- |
- { |
- FOR_FLOAT64_INPUTS(i) { |
- Node* n = r.jsgraph()->Constant(*i); |
- Node* use = r.Return(n); |
- Node* c = r.changer()->GetRepresentationFor( |
- n, MachineRepresentation::kTagged, Type::None(), use, |
- UseInfo(MachineRepresentation::kFloat64, Truncation::None())); |
- r.CheckFloat64Constant(c, *i); |
- } |
- } |
- |
- { |
- FOR_FLOAT32_INPUTS(i) { |
- Node* n = r.jsgraph()->Float32Constant(*i); |
- Node* use = r.Return(n); |
- Node* c = r.changer()->GetRepresentationFor( |
- n, MachineRepresentation::kFloat32, Type::None(), use, |
- UseInfo(MachineRepresentation::kFloat64, Truncation::None())); |
- r.CheckFloat64Constant(c, *i); |
- } |
+ for (double i : ValueHelper::float64_vector()) { |
+ Node* n = r.jsgraph()->Constant(i); |
+ Node* use = r.Return(n); |
+ Node* c = r.changer()->GetRepresentationFor( |
+ n, MachineRepresentation::kTagged, Type::None(), use, |
+ UseInfo(MachineRepresentation::kFloat64, Truncation::None())); |
+ r.CheckFloat64Constant(c, i); |
} |
- { |
- FOR_INT32_INPUTS(i) { |
- Node* n = r.jsgraph()->Int32Constant(*i); |
- Node* use = r.Return(n); |
- Node* c = r.changer()->GetRepresentationFor( |
- n, MachineRepresentation::kWord32, Type::Signed32(), use, |
- UseInfo(MachineRepresentation::kFloat64, Truncation::None())); |
- r.CheckFloat64Constant(c, *i); |
- } |
+ for (int i : ValueHelper::int32_vector()) { |
+ Node* n = r.jsgraph()->Constant(i); |
+ Node* use = r.Return(n); |
+ Node* c = r.changer()->GetRepresentationFor( |
+ n, MachineRepresentation::kWord32, Type::Signed32(), use, |
+ UseInfo(MachineRepresentation::kFloat64, Truncation::None())); |
+ r.CheckFloat64Constant(c, i); |
} |
- { |
- FOR_UINT32_INPUTS(i) { |
- Node* n = r.jsgraph()->Int32Constant(*i); |
- Node* use = r.Return(n); |
- Node* c = r.changer()->GetRepresentationFor( |
- n, MachineRepresentation::kWord32, Type::Unsigned32(), use, |
- UseInfo(MachineRepresentation::kFloat64, Truncation::None())); |
- r.CheckFloat64Constant(c, *i); |
- } |
+ for (uint32_t i : ValueHelper::uint32_vector()) { |
+ Node* n = r.jsgraph()->Constant(i); |
+ Node* use = r.Return(n); |
+ Node* c = r.changer()->GetRepresentationFor( |
+ n, MachineRepresentation::kWord32, Type::Unsigned32(), use, |
+ UseInfo(MachineRepresentation::kFloat64, Truncation::None())); |
+ r.CheckFloat64Constant(c, i); |
} |
} |
@@ -284,102 +211,38 @@ static bool IsFloat32Uint32(uint32_t val) { return val <= (1 << 23); } |
TEST(ToFloat32_constant) { |
RepresentationChangerTester r; |
- { |
- FOR_FLOAT32_INPUTS(i) { |
- Node* n = r.jsgraph()->Float32Constant(*i); |
- Node* use = r.Return(n); |
- Node* c = r.changer()->GetRepresentationFor( |
- n, MachineRepresentation::kFloat32, Type::None(), use, |
- UseInfo(MachineRepresentation::kFloat32, Truncation::None())); |
- CHECK_EQ(n, c); |
- } |
- } |
- |
- { |
- FOR_FLOAT32_INPUTS(i) { |
- Node* n = r.jsgraph()->Constant(*i); |
- Node* use = r.Return(n); |
- Node* c = r.changer()->GetRepresentationFor( |
- n, MachineRepresentation::kTagged, Type::None(), use, |
- UseInfo(MachineRepresentation::kFloat32, Truncation::None())); |
- r.CheckFloat32Constant(c, *i); |
- } |
- } |
- |
- { |
- FOR_FLOAT32_INPUTS(i) { |
- Node* n = r.jsgraph()->Float64Constant(*i); |
- Node* use = r.Return(n); |
- Node* c = r.changer()->GetRepresentationFor( |
- n, MachineRepresentation::kFloat64, Type::None(), use, |
- UseInfo(MachineRepresentation::kFloat32, Truncation::None())); |
- r.CheckFloat32Constant(c, *i); |
- } |
- } |
- |
- { |
- FOR_INT32_INPUTS(i) { |
- if (!IsFloat32Int32(*i)) continue; |
- Node* n = r.jsgraph()->Int32Constant(*i); |
- Node* use = r.Return(n); |
- Node* c = r.changer()->GetRepresentationFor( |
- n, MachineRepresentation::kWord32, Type::Signed32(), use, |
- UseInfo(MachineRepresentation::kFloat32, Truncation::None())); |
- r.CheckFloat32Constant(c, static_cast<float>(*i)); |
- } |
- } |
- |
- { |
- FOR_UINT32_INPUTS(i) { |
- if (!IsFloat32Uint32(*i)) continue; |
- Node* n = r.jsgraph()->Int32Constant(*i); |
- Node* use = r.Return(n); |
- Node* c = r.changer()->GetRepresentationFor( |
- n, MachineRepresentation::kWord32, Type::Unsigned32(), use, |
- UseInfo(MachineRepresentation::kFloat32, Truncation::None())); |
- r.CheckFloat32Constant(c, static_cast<float>(*i)); |
- } |
+ for (double i : ValueHelper::float32_vector()) { |
+ Node* n = r.jsgraph()->Constant(i); |
+ Node* use = r.Return(n); |
+ Node* c = r.changer()->GetRepresentationFor( |
+ n, MachineRepresentation::kTagged, Type::None(), use, |
+ UseInfo(MachineRepresentation::kFloat32, Truncation::None())); |
+ r.CheckFloat32Constant(c, i); |
+ } |
+ |
+ for (int i : ValueHelper::int32_vector()) { |
+ if (!IsFloat32Int32(i)) continue; |
+ Node* n = r.jsgraph()->Constant(i); |
+ Node* use = r.Return(n); |
+ Node* c = r.changer()->GetRepresentationFor( |
+ n, MachineRepresentation::kWord32, Type::Signed32(), use, |
+ UseInfo(MachineRepresentation::kFloat32, Truncation::None())); |
+ r.CheckFloat32Constant(c, static_cast<float>(i)); |
+ } |
+ |
+ for (uint32_t i : ValueHelper::uint32_vector()) { |
+ if (!IsFloat32Uint32(i)) continue; |
+ Node* n = r.jsgraph()->Constant(i); |
+ Node* use = r.Return(n); |
+ Node* c = r.changer()->GetRepresentationFor( |
+ n, MachineRepresentation::kWord32, Type::Unsigned32(), use, |
+ UseInfo(MachineRepresentation::kFloat32, Truncation::None())); |
+ r.CheckFloat32Constant(c, static_cast<float>(i)); |
} |
} |
- |
TEST(ToInt32_constant) { |
RepresentationChangerTester r; |
- |
- { |
- FOR_INT32_INPUTS(i) { |
- Node* n = r.jsgraph()->Int32Constant(*i); |
- Node* use = r.Return(n); |
- Node* c = r.changer()->GetRepresentationFor( |
- n, MachineRepresentation::kWord32, Type::Signed32(), use, |
- UseInfo(MachineRepresentation::kWord32, Truncation::None())); |
- r.CheckInt32Constant(c, *i); |
- } |
- } |
- |
- { |
- FOR_INT32_INPUTS(i) { |
- if (!IsFloat32Int32(*i)) continue; |
- Node* n = r.jsgraph()->Float32Constant(static_cast<float>(*i)); |
- Node* use = r.Return(n); |
- Node* c = r.changer()->GetRepresentationFor( |
- n, MachineRepresentation::kFloat32, Type::Signed32(), use, |
- UseInfo(MachineRepresentation::kWord32, Truncation::None())); |
- r.CheckInt32Constant(c, *i); |
- } |
- } |
- |
- { |
- FOR_INT32_INPUTS(i) { |
- Node* n = r.jsgraph()->Float64Constant(*i); |
- Node* use = r.Return(n); |
- Node* c = r.changer()->GetRepresentationFor( |
- n, MachineRepresentation::kFloat64, Type::Signed32(), use, |
- UseInfo(MachineRepresentation::kWord32, Truncation::None())); |
- r.CheckInt32Constant(c, *i); |
- } |
- } |
- |
{ |
FOR_INT32_INPUTS(i) { |
Node* n = r.jsgraph()->Constant(*i); |
@@ -392,53 +255,15 @@ TEST(ToInt32_constant) { |
} |
} |
- |
TEST(ToUint32_constant) { |
RepresentationChangerTester r; |
- |
- { |
- FOR_UINT32_INPUTS(i) { |
- Node* n = r.jsgraph()->Int32Constant(*i); |
- Node* use = r.Return(n); |
- Node* c = r.changer()->GetRepresentationFor( |
- n, MachineRepresentation::kWord32, Type::Unsigned32(), use, |
- UseInfo(MachineRepresentation::kWord32, Truncation::None())); |
- r.CheckUint32Constant(c, *i); |
- } |
- } |
- |
- { |
- FOR_UINT32_INPUTS(i) { |
- if (!IsFloat32Uint32(*i)) continue; |
- Node* n = r.jsgraph()->Float32Constant(static_cast<float>(*i)); |
- Node* use = r.Return(n); |
- Node* c = r.changer()->GetRepresentationFor( |
- n, MachineRepresentation::kFloat32, Type::Unsigned32(), use, |
- UseInfo(MachineRepresentation::kWord32, Truncation::None())); |
- r.CheckUint32Constant(c, *i); |
- } |
- } |
- |
- { |
- FOR_UINT32_INPUTS(i) { |
- Node* n = r.jsgraph()->Float64Constant(*i); |
- Node* use = r.Return(n); |
- Node* c = r.changer()->GetRepresentationFor( |
- n, MachineRepresentation::kFloat64, Type::Unsigned32(), use, |
- UseInfo(MachineRepresentation::kWord32, Truncation::None())); |
- r.CheckUint32Constant(c, *i); |
- } |
- } |
- |
- { |
- FOR_UINT32_INPUTS(i) { |
- Node* n = r.jsgraph()->Constant(static_cast<double>(*i)); |
- Node* use = r.Return(n); |
- Node* c = r.changer()->GetRepresentationFor( |
- n, MachineRepresentation::kTagged, Type::Unsigned32(), use, |
- UseInfo(MachineRepresentation::kWord32, Truncation::None())); |
- r.CheckUint32Constant(c, *i); |
- } |
+ FOR_UINT32_INPUTS(i) { |
+ Node* n = r.jsgraph()->Constant(static_cast<double>(*i)); |
+ Node* use = r.Return(n); |
+ Node* c = r.changer()->GetRepresentationFor( |
+ n, MachineRepresentation::kTagged, Type::Unsigned32(), use, |
+ UseInfo(MachineRepresentation::kWord32, Truncation::None())); |
+ r.CheckUint32Constant(c, *i); |
} |
} |