From 3c219a46ce5888e8e402b64cc943ac6522156ef5 Mon Sep 17 00:00:00 2001
From: Elena Zhelezina <elena.zhelezina@arm.com>
Date: Tue, 16 Jun 2020 18:16:05 +0100
Subject: [PATCH] Added broadcast params to addsub structure.

Change-Id: I61d7d4a94087d052a782890799211031f6ed3015
---
 tensorflow/lite/tools/versioning/op_version.cc | 13 ++++++-------
 tensorflow/lite/tools/versioning/op_version.h  |  2 ++
 2 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/tensorflow/lite/tools/versioning/op_version.cc b/tensorflow/lite/tools/versioning/op_version.cc
index 830dce468f5..51eca51a4fe 100644
--- a/tensorflow/lite/tools/versioning/op_version.cc
+++ b/tensorflow/lite/tools/versioning/op_version.cc
@@ -449,8 +449,8 @@ int GetBuiltinOperatorVersion(const OpSignature& op_sig) {
           return 4;
         }
       }
-      if (op_sig.options.broadcast.need_broadcast &&
-          op_sig.options.broadcast.num_dims > 4) {
+      if (op_sig.options.addsub.need_broadcast &&
+          op_sig.options.addsub.num_dims > 4) {
         return 3;
       }
       if (op_sig.input_types.at(0) == TensorType_INT8) {
@@ -648,14 +648,13 @@ OpSignature GetOpSignature(const OperatorCode* op_code, const Operator* op,
     case BuiltinOperator_SUB: {
       auto sub_option = op->builtin_options_as_SubOptions();
       op_sig.options.addsub.pot_scale_int16 = false;
+      op_sig.options.addsub.need_broadcast = false;
+      op_sig.options.addsub.num_dims = 1;
       if (sub_option) {
         op_sig.options.addsub.pot_scale_int16 = sub_option->pot_scale_int16();
-      }
-
-      if (op_code->builtin_code() == BuiltinOperator_SUB) {
-        op_sig.options.broadcast.need_broadcast =
+        op_sig.options.addsub.need_broadcast =
             !HaveSameShapes(subgraph, op, 0, 1);
-        op_sig.options.broadcast.num_dims =
+        op_sig.options.addsub.num_dims =
             std::max(GetNumDims(subgraph, op, 0), GetNumDims(subgraph, op, 1));
       }
     } break;
diff --git a/tensorflow/lite/tools/versioning/op_version.h b/tensorflow/lite/tools/versioning/op_version.h
index 4582d08a879..0e8c086eb14 100644
--- a/tensorflow/lite/tools/versioning/op_version.h
+++ b/tensorflow/lite/tools/versioning/op_version.h
@@ -62,6 +62,8 @@ typedef struct {
     } broadcast;
     struct {
       bool pot_scale_int16;
+      int32_t num_dims;
+      bool need_broadcast;
     } addsub;
   } options;
 } OpSignature;