Index: test/compiler-unittests/change-lowering-unittest.cc |
diff --git a/test/compiler-unittests/change-lowering-unittest.cc b/test/compiler-unittests/change-lowering-unittest.cc |
index 45e001bcda24dc3e4da3f93c73fb01b795e92537..329acfff1ef57dd83852ea854aef9afe590c0626 100644 |
--- a/test/compiler-unittests/change-lowering-unittest.cc |
+++ b/test/compiler-unittests/change-lowering-unittest.cc |
@@ -117,34 +117,33 @@ TARGET_TEST_F(ChangeLowering32Test, ChangeInt32ToTagged) { |
ASSERT_TRUE(reduction.Changed()); |
Node* phi = reduction.replacement(); |
- ASSERT_EQ(IrOpcode::kPhi, phi->opcode()); |
- |
- Node* smi = NodeProperties::GetValueInput(phi, 1); |
- ASSERT_THAT(smi, IsProjection(0, IsInt32AddWithOverflow(val, val))); |
- |
- Node* heap_number = NodeProperties::GetValueInput(phi, 0); |
- ASSERT_EQ(IrOpcode::kCall, heap_number->opcode()); |
- |
- Node* merge = NodeProperties::GetControlInput(phi); |
- ASSERT_EQ(IrOpcode::kMerge, merge->opcode()); |
- |
+ Capture<Node*> add, branch, heap_number, if_true; |
const int32_t kValueOffset = kHeapNumberValueOffset - kHeapObjectTag; |
- EXPECT_THAT(NodeProperties::GetControlInput(merge, 0), |
- IsStore(kMachFloat64, kNoWriteBarrier, heap_number, |
+ EXPECT_THAT( |
+ phi, |
+ IsPhi( |
+ IsFinish( |
+ AllOf( |
+ CaptureEq(&heap_number), |
+ IsCall( |
+ _, IsHeapConstant( |
+ PrintableUnique<HeapObject>::CreateImmovable( |
+ zone(), CEntryStub(isolate(), 1).GetCode())), |
+ IsExternalConstant(ExternalReference( |
+ Runtime::FunctionForId(Runtime::kAllocateHeapNumber), |
+ isolate())), |
+ IsInt32Constant(0), IsNumberConstant(0.0), |
+ graph()->start(), CaptureEq(&if_true))), |
+ IsStore(kMachFloat64, kNoWriteBarrier, CaptureEq(&heap_number), |
IsInt32Constant(kValueOffset), |
- IsChangeInt32ToFloat64(val), _, heap_number)); |
- |
- Node* if_true = NodeProperties::GetControlInput(heap_number); |
- ASSERT_EQ(IrOpcode::kIfTrue, if_true->opcode()); |
- |
- Node* if_false = NodeProperties::GetControlInput(merge, 1); |
- ASSERT_EQ(IrOpcode::kIfFalse, if_false->opcode()); |
- |
- Node* branch = NodeProperties::GetControlInput(if_true); |
- EXPECT_EQ(branch, NodeProperties::GetControlInput(if_false)); |
- EXPECT_THAT(branch, |
- IsBranch(IsProjection(1, IsInt32AddWithOverflow(val, val)), |
- graph()->start())); |
+ IsChangeInt32ToFloat64(val), CaptureEq(&heap_number), |
+ CaptureEq(&if_true))), |
+ IsProjection( |
+ 0, AllOf(CaptureEq(&add), IsInt32AddWithOverflow(val, val))), |
+ IsMerge(AllOf(CaptureEq(&if_true), IsIfTrue(CaptureEq(&branch))), |
+ IsIfFalse(AllOf(CaptureEq(&branch), |
+ IsBranch(IsProjection(1, CaptureEq(&add)), |
+ graph()->start())))))); |
} |
@@ -161,17 +160,21 @@ TARGET_TEST_F(ChangeLowering32Test, ChangeTaggedToFloat64) { |
kSmiTagSize + SmiTagging<kPointerSize>::kSmiShiftSize; |
const int32_t kValueOffset = kHeapNumberValueOffset - kHeapObjectTag; |
Node* phi = reduction.replacement(); |
- Capture<Node*> branch; |
+ Capture<Node*> branch, if_true; |
EXPECT_THAT( |
phi, |
- IsPhi(IsLoad(kMachFloat64, val, IsInt32Constant(kValueOffset), _), |
- IsChangeInt32ToFloat64( |
- IsWord32Sar(val, IsInt32Constant(kShiftAmount))), |
- IsMerge(IsIfTrue(AllOf( |
+ IsPhi( |
+ IsLoad(kMachFloat64, val, IsInt32Constant(kValueOffset), |
+ IsControlEffect(CaptureEq(&if_true))), |
+ IsChangeInt32ToFloat64( |
+ IsWord32Sar(val, IsInt32Constant(kShiftAmount))), |
+ IsMerge( |
+ AllOf(CaptureEq(&if_true), |
+ IsIfTrue(AllOf( |
CaptureEq(&branch), |
IsBranch(IsWord32And(val, IsInt32Constant(kSmiTagMask)), |
- graph()->start()))), |
- IsIfFalse(CaptureEq(&branch))))); |
+ graph()->start())))), |
+ IsIfFalse(CaptureEq(&branch))))); |
} |
@@ -218,17 +221,21 @@ TARGET_TEST_F(ChangeLowering64Test, ChangeTaggedToFloat64) { |
kSmiTagSize + SmiTagging<kPointerSize>::kSmiShiftSize; |
const int32_t kValueOffset = kHeapNumberValueOffset - kHeapObjectTag; |
Node* phi = reduction.replacement(); |
- Capture<Node*> branch; |
+ Capture<Node*> branch, if_true; |
EXPECT_THAT( |
phi, |
- IsPhi(IsLoad(kMachFloat64, val, IsInt32Constant(kValueOffset), _), |
- IsChangeInt32ToFloat64(IsConvertInt64ToInt32( |
- IsWord64Sar(val, IsInt32Constant(kShiftAmount)))), |
- IsMerge(IsIfTrue(AllOf( |
+ IsPhi( |
+ IsLoad(kMachFloat64, val, IsInt32Constant(kValueOffset), |
+ IsControlEffect(CaptureEq(&if_true))), |
+ IsChangeInt32ToFloat64(IsConvertInt64ToInt32( |
+ IsWord64Sar(val, IsInt32Constant(kShiftAmount)))), |
+ IsMerge( |
+ AllOf(CaptureEq(&if_true), |
+ IsIfTrue(AllOf( |
CaptureEq(&branch), |
IsBranch(IsWord64And(val, IsInt32Constant(kSmiTagMask)), |
- graph()->start()))), |
- IsIfFalse(CaptureEq(&branch))))); |
+ graph()->start())))), |
+ IsIfFalse(CaptureEq(&branch))))); |
} |
} // namespace compiler |