From a57eccbe313557b9eafec40b39bac3115d9b930d Mon Sep 17 00:00:00 2001 From: Keith Davis Date: Fri, 14 Jun 2019 17:33:22 +0100 Subject: IVGCVSW-3231 Add reference workload support for SpaceToDepth * Added reference workload for SpaceToDepth * Added unit tests for float32 & uint8 * Minor sort refactoring to RefWorkloads.hpp to alphabetical order Change-Id: I2e01f8101650e2aae102a8a32bc0064f067141ab Signed-off-by: Keith Davis --- src/backends/reference/RefLayerSupport.cpp | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'src/backends/reference/RefLayerSupport.cpp') diff --git a/src/backends/reference/RefLayerSupport.cpp b/src/backends/reference/RefLayerSupport.cpp index 077aa1ce3a..a1807819e3 100644 --- a/src/backends/reference/RefLayerSupport.cpp +++ b/src/backends/reference/RefLayerSupport.cpp @@ -1282,6 +1282,33 @@ bool RefLayerSupport::IsSpaceToBatchNdSupported(const TensorInfo& input, return supported; } +bool RefLayerSupport::IsSpaceToDepthSupported(const TensorInfo& input, + const TensorInfo& output, + const SpaceToDepthDescriptor& descriptor, + Optional reasonIfUnsupported) const +{ + + ignore_unused(descriptor); + bool supported = true; + + std::array supportedTypes = + { + DataType::Float32, + DataType::QuantisedAsymm8, + }; + + supported &= CheckSupportRule(TypeAnyOf(input, supportedTypes), reasonIfUnsupported, + "Reference SpaceToDepth: input type not supported"); + + supported &= CheckSupportRule(TypeAnyOf(output, supportedTypes), reasonIfUnsupported, + "Reference SpaceToDepth: output type not supported"); + + supported &= CheckSupportRule(TypesAreEqual(input, output), reasonIfUnsupported, + "Reference SpaceToDepth: input and output types are mismatched"); + + return supported; +} + bool RefLayerSupport::IsSplitterSupported(const TensorInfo& input, const ViewsDescriptor& descriptor, Optional reasonIfUnsupported) const -- cgit v1.2.1