Index: test/unittests/compiler/int64-lowering-unittest.cc |
diff --git a/test/unittests/compiler/int64-lowering-unittest.cc b/test/unittests/compiler/int64-lowering-unittest.cc |
index d5a1b2f7c80e9254cb5b0021e3c21b101e5f09f9..874488b476ab0b1409d4b8f72f83cdb92b54e668 100644 |
--- a/test/unittests/compiler/int64-lowering-unittest.cc |
+++ b/test/unittests/compiler/int64-lowering-unittest.cc |
@@ -491,6 +491,36 @@ TEST_F(Int64LoweringTest, I64UConvertI32_2) { |
start(), start())); |
} |
// kExprF64ReinterpretI64: |
+TEST_F(Int64LoweringTest, F64ReinterpretI64) { |
+ LowerGraph(graph()->NewNode(machine()->BitcastInt64ToFloat64(), |
+ Int64Constant(value(0))), |
+ MachineRepresentation::kFloat64); |
+ |
+ Capture<Node*> stack_slot_capture; |
+ Matcher<Node*> stack_slot_matcher = |
+ IsStackSlot(MachineRepresentation::kWord64); |
+ |
+ Capture<Node*> store_capture; |
+ Matcher<Node*> store_matcher = |
+ IsStore(StoreRepresentation(MachineRepresentation::kWord32, |
+ WriteBarrierKind::kNoWriteBarrier), |
+ AllOf(CaptureEq(&stack_slot_capture), stack_slot_matcher), |
+ IsInt32Constant(0), IsInt32Constant(low_word_value(0)), |
+ IsStore(StoreRepresentation(MachineRepresentation::kWord32, |
+ WriteBarrierKind::kNoWriteBarrier), |
+ AllOf(CaptureEq(&stack_slot_capture), stack_slot_matcher), |
+ IsInt32Constant(4), IsInt32Constant(high_word_value(0)), |
+ start(), start()), |
+ start()); |
+ |
+ EXPECT_THAT( |
+ graph()->end()->InputAt(1), |
+ IsReturn(IsLoad(MachineType::Float64(), |
+ AllOf(CaptureEq(&stack_slot_capture), stack_slot_matcher), |
+ IsInt32Constant(0), |
+ AllOf(CaptureEq(&store_capture), store_matcher), start()), |
+ start(), start())); |
+} |
// kExprI64ReinterpretF64: |
TEST_F(Int64LoweringTest, I64ReinterpretF64) { |
LowerGraph(graph()->NewNode(machine()->BitcastFloat64ToInt64(), |