diff options
Diffstat (limited to 'src/armnn/test/optimizations/OptimizeInversePermutesTests.cpp')
-rw-r--r-- | src/armnn/test/optimizations/OptimizeInversePermutesTests.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/armnn/test/optimizations/OptimizeInversePermutesTests.cpp b/src/armnn/test/optimizations/OptimizeInversePermutesTests.cpp index dcf955956d..21f791c5ff 100644 --- a/src/armnn/test/optimizations/OptimizeInversePermutesTests.cpp +++ b/src/armnn/test/optimizations/OptimizeInversePermutesTests.cpp @@ -39,4 +39,31 @@ BOOST_AUTO_TEST_CASE(OptimizeInversePermutesTest) &IsLayerOfType<armnn::OutputLayer>)); } +BOOST_AUTO_TEST_CASE(OptimizeInverseTransposesTest) +{ + armnn::Graph graph; + + auto output = graph.AddLayer<armnn::OutputLayer>(0, "output"); + + graph.InsertNewLayer<armnn::InputLayer>(output->GetInputSlot(0), 0, "input"); + + // Inserts two permutes, one the inverse of the other. + graph.InsertNewLayer<armnn::TransposeLayer>(output->GetInputSlot(0), + armnn::TransposeDescriptor({ 0, 3, 1, 2 }), + "transpose0312"); + graph.InsertNewLayer<armnn::TransposeLayer>(output->GetInputSlot(0), + armnn::TransposeDescriptor({ 0, 2, 3, 1 }), + "transpose0231"); + + BOOST_TEST(CheckSequence(graph.cbegin(), graph.cend(), &IsLayerOfType<armnn::InputLayer>, + &IsLayerOfType<armnn::TransposeLayer>, &IsLayerOfType<armnn::TransposeLayer>, + &IsLayerOfType<armnn::OutputLayer>)); + + armnn::Optimizer::Pass(graph, armnn::MakeOptimizations(OptimizeInverseTransposes())); + + // The permutes are removed. + BOOST_TEST(CheckSequence(graph.cbegin(), graph.cend(), &IsLayerOfType<armnn::InputLayer>, + &IsLayerOfType<armnn::OutputLayer>)); +} + BOOST_AUTO_TEST_SUITE_END()
\ No newline at end of file |