Index: test/cctest/compiler/test-run-machops.cc |
diff --git a/test/cctest/compiler/test-run-machops.cc b/test/cctest/compiler/test-run-machops.cc |
index 985e0f8ff619852457fbab807f73be0d34fb4c1a..3c8d909e7ee3def3167a815e5ed07feff1315008 100644 |
--- a/test/cctest/compiler/test-run-machops.cc |
+++ b/test/cctest/compiler/test-run-machops.cc |
@@ -4242,4 +4242,37 @@ TEST(RunTruncateFloat64ToInt32P) { |
} |
} |
+ |
+TEST(RunChangeFloat32ToFloat64) { |
+ double actual = 0.0f; |
+ float expected = 0.0; |
+ RawMachineAssemblerTester<int32_t> m; |
+ m.StoreToPointer( |
+ &actual, kMachFloat64, |
+ m.ChangeFloat32ToFloat64(m.LoadFromPointer(&expected, kMachFloat32))); |
+ m.Return(m.Int32Constant(0)); |
+ FOR_FLOAT32_INPUTS(i) { |
+ expected = *i; |
+ CHECK_EQ(0, m.Call()); |
+ CHECK_EQ(expected, actual); |
+ } |
+} |
+ |
+ |
+TEST(RunTruncateFloat64ToFloat32) { |
+ float actual = 0.0f; |
+ double input = 0.0; |
+ RawMachineAssemblerTester<int32_t> m; |
+ m.StoreToPointer( |
+ &actual, kMachFloat32, |
+ m.TruncateFloat64ToFloat32(m.LoadFromPointer(&input, kMachFloat64))); |
+ m.Return(m.Int32Constant(0)); |
+ FOR_FLOAT64_INPUTS(i) { |
+ input = *i; |
+ volatile double expected = DoubleToFloat32(input); |
+ CHECK_EQ(0, m.Call()); |
+ CHECK_EQ(expected, actual); |
+ } |
+} |
+ |
#endif // V8_TURBOFAN_TARGET |