IVGCVSW-4301 Correctly validate reshape for broadcastable inputs
!android-nn-driver:2642
Signed-off-by: Derek Lamberti <derek.lamberti@arm.com>
Change-Id: I4db6ea4ed0a192c85f124c4a9ced60b1666a3870
Signed-off-by: Teresa Charlin <teresa.charlinreyes@arm.com>
diff --git a/1.2/HalPolicy.cpp b/1.2/HalPolicy.cpp
index bf4525a..c9b4dad 100644
--- a/1.2/HalPolicy.cpp
+++ b/1.2/HalPolicy.cpp
@@ -1347,7 +1347,7 @@
IConnectableLayer* layer = data.m_Network->AddMaximumLayer();
assert(layer != nullptr);
- bool isReshapeSupported = BroadcastTensor(input0, input1, outInfo, layer, data);
+ bool isReshapeSupported = BroadcastTensor(input0, input1, layer, data);
if (!isReshapeSupported)
{
return false;
@@ -1402,7 +1402,7 @@
IConnectableLayer* const layer = data.m_Network->AddMinimumLayer();
assert(layer != nullptr);
- bool isReshapeSupported = BroadcastTensor(input0, input1, outputInfo, layer, data);
+ bool isReshapeSupported = BroadcastTensor(input0, input1, layer, data);
if (!isReshapeSupported)
{
return false;
@@ -1565,7 +1565,7 @@
return Fail("%s: AddPreluLayer failed", __func__);
}
- bool isReshapeSupported = BroadcastTensor(input, alpha, outputInfo, layer, data);
+ bool isReshapeSupported = BroadcastTensor(input, alpha, layer, data);
if (!isReshapeSupported)
{
return false;
diff --git a/ConversionUtils.hpp b/ConversionUtils.hpp
index b3f1ac7..4881ec9 100644
--- a/ConversionUtils.hpp
+++ b/ConversionUtils.hpp
@@ -241,7 +241,6 @@
bool BroadcastTensor(LayerInputHandle& input0,
LayerInputHandle& input1,
- const armnn::TensorInfo& outputInfo,
armnn::IConnectableLayer* startLayer,
ConversionData& data)
{
@@ -292,8 +291,8 @@
IsReshapeSupported,
data.m_Backends,
isSupported,
+ smallInfo,
reshapedInfo,
- outputInfo,
reshapeDescriptor);
if (!isSupported)
{
@@ -1594,7 +1593,7 @@
if (endLayer != nullptr)
{
- bool isReshapeSupported = BroadcastTensor(input0, input1, outputInfo, startLayer, data);
+ bool isReshapeSupported = BroadcastTensor(input0, input1, startLayer, data);
if (!isReshapeSupported)
{
return false;
@@ -2408,7 +2407,7 @@
if (endLayer)
{
- bool isReshapeSupported = BroadcastTensor(input0, input1, outputInfo, startLayer, data);
+ bool isReshapeSupported = BroadcastTensor(input0, input1, startLayer, data);
if (!isReshapeSupported)
{
return false;
@@ -3009,7 +3008,7 @@
if (endLayer != nullptr)
{
- bool isReshapeSupported = BroadcastTensor(input0, input1, outputInfo, startLayer, data);
+ bool isReshapeSupported = BroadcastTensor(input0, input1, startLayer, data);
if (!isReshapeSupported)
{
return false;
@@ -3218,7 +3217,7 @@
if (endLayer)
{
- bool isReshapeSupported = BroadcastTensor(input0, input1, outputInfo, startLayer, data);
+ bool isReshapeSupported = BroadcastTensor(input0, input1, startLayer, data);
if (!isReshapeSupported)
{
return false;