15TEST(IOBarrierRemovalTests, IOBarrierRemoval)
22 auto i32Type = BitType::Create(32);
23 auto ioStateType = IOStateType::Create();
24 const auto functionType =
25 FunctionType::Create({ i32Type, i32Type, ioStateType }, { i32Type, ioStateType });
28 const auto & rvsdg = rvsdgModule.Rvsdg();
30 const auto lambdaNode = LambdaNode::Create(
31 rvsdg.GetRootRegion(),
32 LlvmLambdaOperation::Create(functionType,
"f", Linkage::externalLinkage));
34 auto x = lambdaNode->GetFunctionArguments()[0];
35 auto y = lambdaNode->GetFunctionArguments()[1];
36 auto ioState = lambdaNode->GetFunctionArguments()[2];
43 const auto lambdaOutput = lambdaNode->finalize({ sdivNode.output(0), ioState });
45 GraphExport::Create(*lambdaOutput,
"f");
53 EXPECT_FALSE(Region::containsOperation<IOBarrierOperation>(rvsdg.GetRootRegion(),
true));