// // Copyright © 2022-2023 Arm Ltd and Contributors. All rights reserved. // SPDX-License-Identifier: MIT // #include #include #include #include TEST_SUITE("TosaReferenceOptimizedNetwork") { TEST_CASE("SimpleSupportedOptimizedNetwork") { armnn::IRuntime::CreationOptions options; armnn::IRuntimePtr runtime(armnn::IRuntime::Create(options)); armnn::INetworkPtr network(armnn::INetwork::Create()); auto inputLayer1 = network->AddInputLayer(0, "input_1"); auto inputLayer2 = network->AddInputLayer(1, "input_2"); ARMNN_NO_DEPRECATE_WARN_BEGIN auto addLayer = network->AddAdditionLayer("add"); ARMNN_NO_DEPRECATE_WARN_END auto outputLayer = network->AddOutputLayer(2, "output"); armnn::TensorInfo tensorInfo{{4}, armnn::DataType::Float32}; inputLayer1->GetOutputSlot(0).Connect(addLayer->GetInputSlot(0)); inputLayer1->GetOutputSlot(0).SetTensorInfo(tensorInfo); inputLayer2->GetOutputSlot(0).Connect(addLayer->GetInputSlot(1)); inputLayer2->GetOutputSlot(0).SetTensorInfo(tensorInfo); addLayer->GetOutputSlot(0).Connect(outputLayer->GetInputSlot(0)); addLayer->GetOutputSlot(0).SetTensorInfo(tensorInfo); std::vector backends = { "TosaRef" }; armnn::OptimizerOptionsOpaque optimizedOptions; armnn::IOptimizedNetworkPtr optNet = Optimize(*network, backends, runtime->GetDeviceSpec(), optimizedOptions); CHECK(optNet); armnn::Graph& graph = GetGraphForTesting(optNet.get()); // Check graph layer sequence to ensure that the network has been replaced with a PreCompiledLayer CHECK(CheckSequence(graph.cbegin(), graph.cend(), &IsLayerOfType, &IsLayerOfType, &IsLayerOfType, &IsLayerOfType)); } }