15TEST(MemoryStateSplitConversionTests, SplitConversion)
23 auto memoryStateType = MemoryStateType::Create();
26 auto & rvsdg = rvsdgModule.
Rvsdg();
31 auto structuralNode = TestStructuralNode::create(&rvsdg.GetRootRegion(), 1);
32 const auto inputVar = structuralNode->addInputWithArguments(importX);
34 auto & entrySplitNode =
35 LambdaEntryMemoryStateSplitOperation::CreateNode(*inputVar.argument[0], { 0, 1, 2 });
37 const auto outputVar0 = structuralNode->addOutputWithResults({ entrySplitNode.output(0) });
38 const auto outputVar1 = structuralNode->addOutputWithResults({ entrySplitNode.output(1) });
39 const auto outputVar2 = structuralNode->addOutputWithResults({ entrySplitNode.output(2) });
41 auto splitResults = MemoryStateSplitOperation::Create(importY, 2);
58 EXPECT_EQ(rvsdg.GetRootRegion().numNodes(), 2u);
59 EXPECT_EQ(structuralNode->subregion(0)->numNodes(), 1u);
64 EXPECT_EQ(outputVar0.output->nusers(), 1u);
65 EXPECT_TRUE(IsOwnerNodeOperation<ForkOperation>(*inputVar.argument[0]->Users().begin()));
71 EXPECT_TRUE(IsOwnerNodeOperation<ForkOperation>(*importY.Users().begin()));