IVGCVSW-5174 Fix i386 Floor and AbsTest
authorFrancis Murtagh <francis.murtagh@arm.com>
Thu, 30 Jul 2020 17:03:40 +0000 (18:03 +0100)
committerFrancis Murtagh <francis.murtagh@arm.com>
Thu, 30 Jul 2020 17:03:40 +0000 (18:03 +0100)
 * Remove QSymm16 support for Floor to match NNApi and disable RefLayerTest
 * Return nullptr for floor workload if quantized type
 * Fix SimpleAbsTest incorrect output

Signed-off-by: Francis Murtagh <francis.murtagh@arm.com>
Change-Id: I80d9e2fb78777d0a3fc7ce6d12b5eb4af3fd1d3a

src/armnnDeserializer/test/DeserializeAbs.cpp
src/backends/reference/RefLayerSupport.cpp
src/backends/reference/RefWorkloadFactory.cpp
src/backends/reference/test/RefLayerTests.cpp

index 4d6504b..bdaa869 100644 (file)
@@ -114,7 +114,7 @@ BOOST_AUTO_TEST_SUITE(Deserializer)
         RunTest<4, armnn::DataType::Float32>(
                 0,
                 {{"InputLayer",  { -100.0f, -50.5f, -25.9999f, -0.5f , 0.0f, 1.5555f, 25.5f, 100.0f }}},
-                {{"OutputLayer", { 100.0f, 50.0f, 25.9999f, 0.5f , 0.0f, 1.5555f, 25.5f, 100.0f }}});
+                {{"OutputLayer", { 100.0f, 50.5f, 25.9999f, 0.5f , 0.0f, 1.5555f, 25.5f, 100.0f }}});
     }
 
 BOOST_AUTO_TEST_SUITE_END()
\ No newline at end of file
index 1886d32..80527bd 100644 (file)
@@ -889,12 +889,11 @@ bool RefLayerSupport::IsFloorSupported(const TensorInfo& input,
     IgnoreUnused(output);
     bool supported = true;
 
-    std::array<DataType,4> supportedTypes =
+    std::array<DataType,3> supportedTypes =
     {
         DataType::BFloat16,
         DataType::Float32,
-        DataType::Float16,
-        DataType::QSymmS16
+        DataType::Float16
     };
 
     supported &= CheckSupportRule(TypeAnyOf(input, supportedTypes), reasonIfUnsupported,
index cac1d1b..4ab1701 100644 (file)
@@ -327,7 +327,14 @@ std::unique_ptr<IWorkload> RefWorkloadFactory::CreateFill(const FillQueueDescrip
 std::unique_ptr<IWorkload> RefWorkloadFactory::CreateFloor(const FloorQueueDescriptor& descriptor,
                                                            const WorkloadInfo& info) const
 {
-    return std::make_unique<RefFloorWorkload>(descriptor, info);
+    if(IsQuantizedType(info.m_InputTensorInfos[0].GetDataType()))
+    {
+        return nullptr;
+    }
+    else
+    {
+        return std::make_unique<RefFloorWorkload>(descriptor, info);
+    }
 }
 
 std::unique_ptr<IWorkload> RefWorkloadFactory::CreateFullyConnected(
index df1997d..f79e7e5 100644 (file)
@@ -1366,7 +1366,6 @@ ARMNN_AUTO_TEST_CASE(SimpleFillS32, SimpleFillTest<DataType::Signed32>)
 // Floor
 ARMNN_AUTO_TEST_CASE(SimpleFloor, SimpleFloorTest<DataType::Float32>)
 ARMNN_AUTO_TEST_CASE(SimpleFloorFloat16, SimpleFloorTest<DataType::Float16>)
-ARMNN_AUTO_TEST_CASE(SimpleFloorQuantisedSymm16, SimpleFloorTest<DataType::QSymmS16>)
 
 // Reshape
 ARMNN_AUTO_TEST_CASE(SimpleReshapeFloat32, SimpleReshapeTest<DataType::Float32>)