From 49e4a081d59e293366f14011e4d2e239ab77d7e7 Mon Sep 17 00:00:00 2001
From: andresovela <andresovela@gmail.com>
Date: Tue, 29 Oct 2024 15:26:41 +0100
Subject: [PATCH 1/4] Add int16 support to PACK

---
 tensorflow/lite/micro/kernels/pack.cc      |  4 ++
 tensorflow/lite/micro/kernels/pack_test.cc | 66 ++++++++--------------
 2 files changed, 28 insertions(+), 42 deletions(-)

diff --git a/tensorflow/lite/micro/kernels/pack.cc b/tensorflow/lite/micro/kernels/pack.cc
index f254329e889..21158936572 100644
--- a/tensorflow/lite/micro/kernels/pack.cc
+++ b/tensorflow/lite/micro/kernels/pack.cc
@@ -85,6 +85,10 @@ TfLiteStatus PackEval(TfLiteContext* context, TfLiteNode* node) {
       return PackImpl<int8_t>(context, node, output, data->values_count,
                               data->axis);
     }
+    case kTfLiteInt16: {
+      return PackImpl<int16_t>(context, node, output, data->values_count,
+                              data->axis);
+    }
     case kTfLiteInt32: {
       return PackImpl<int32_t>(context, node, output, data->values_count,
                                data->axis);
diff --git a/tensorflow/lite/micro/kernels/pack_test.cc b/tensorflow/lite/micro/kernels/pack_test.cc
index 09422176f9f..6deba5c1b4a 100644
--- a/tensorflow/lite/micro/kernels/pack_test.cc
+++ b/tensorflow/lite/micro/kernels/pack_test.cc
@@ -110,44 +110,11 @@ void TestPackThreeInputsFloat(int* input1_dims_data, const float* input1_data,
                       1e-5f, output_data);
 }
 
+template<typename T>
 void TestPackTwoInputsQuantized(
-    int* input1_dims_data, const int8_t* input1_data, int* input2_dims_data,
-    const int8_t* input2_data, int axis, int* output_dims_data,
-    const int8_t* expected_output_data, int8_t* output_data) {
-  TfLiteIntArray* input1_dims = IntArrayFromInts(input1_dims_data);
-  TfLiteIntArray* input2_dims = IntArrayFromInts(input2_dims_data);
-  TfLiteIntArray* output_dims = IntArrayFromInts(output_dims_data);
-  const int output_dims_count = ElementCount(*output_dims);
-
-  constexpr int input_size = 2;
-  constexpr int output_size = 1;
-  constexpr int tensors_size = input_size + output_size;
-  TfLiteTensor tensors[tensors_size] = {
-      // CreateQuantizedTensor needs scale/zero_point values as input, but these
-      // values don't matter as to the functionality of PACK, so just set as 1.0
-      // and 128.
-      CreateQuantizedTensor(input1_data, input1_dims, 1.0, 128),
-      CreateQuantizedTensor(input2_data, input2_dims, 1.0, 128),
-      CreateQuantizedTensor(output_data, output_dims, 1.0, 128)};
-
-  TfLitePackParams builtin_data = {
-      .values_count = 2,
-      .axis = axis,
-  };
-  int inputs_array_data[] = {2, 0, 1};
-  TfLiteIntArray* inputs_array = IntArrayFromInts(inputs_array_data);
-  int outputs_array_data[] = {1, 2};
-  TfLiteIntArray* outputs_array = IntArrayFromInts(outputs_array_data);
-
-  ValidatePackGoldens(tensors, tensors_size, builtin_data, inputs_array,
-                      outputs_array, expected_output_data, output_dims_count,
-                      1e-5f, output_data);
-}
-
-void TestPackTwoInputsQuantized32(
-    int* input1_dims_data, const int32_t* input1_data, int* input2_dims_data,
-    const int32_t* input2_data, int axis, int* output_dims_data,
-    const int32_t* expected_output_data, int32_t* output_data) {
+    int* input1_dims_data, const T* input1_data, int* input2_dims_data,
+    const T* input2_data, int axis, int* output_dims_data,
+    const T* expected_output_data, T* output_data) {
   TfLiteIntArray* input1_dims = IntArrayFromInts(input1_dims_data);
   TfLiteIntArray* input2_dims = IntArrayFromInts(input2_dims_data);
   TfLiteIntArray* output_dims = IntArrayFromInts(output_dims_data);
@@ -227,7 +194,7 @@ TF_LITE_MICRO_TEST(PackFloatThreeInputsNegativeAxis) {
       input3_values, axis, output_shape, golden, output_data);
 }
 
-TF_LITE_MICRO_TEST(PackFloatMultilDimensions) {
+TF_LITE_MICRO_TEST(PackFloatMultiDimensions) {
   int input_shape[] = {2, 2, 3};
   int output_shape[] = {3, 2, 2, 3};
   const float input1_values[] = {1, 2, 3, 4, 5, 6};
@@ -242,7 +209,7 @@ TF_LITE_MICRO_TEST(PackFloatMultilDimensions) {
                                           output_shape, golden, output_data);
 }
 
-TF_LITE_MICRO_TEST(PackQuantizedMultilDimensions) {
+TF_LITE_MICRO_TEST(PackQuantizedInt8MultiDimensions) {
   int input_shape[] = {2, 2, 3};
   int output_shape[] = {3, 2, 2, 3};
   const int8_t input1_values[] = {1, 2, 3, 4, 5, 6};
@@ -252,12 +219,27 @@ TF_LITE_MICRO_TEST(PackQuantizedMultilDimensions) {
   constexpr int output_dims_count = 12;
   int8_t output_data[output_dims_count];
 
-  tflite::testing::TestPackTwoInputsQuantized(
+  tflite::testing::TestPackTwoInputsQuantized<int8_t>(
+      input_shape, input1_values, input_shape, input2_values, axis,
+      output_shape, golden, output_data);
+}
+
+TF_LITE_MICRO_TEST(PackQuantizedInt16MultiDimensions) {
+  int input_shape[] = {2, 2, 3};
+  int output_shape[] = {3, 2, 2, 3};
+  const int16_t input1_values[] = {1, 2, 3, 4, 5, 6};
+  const int16_t input2_values[] = {7, 8, 9, 10, 11, 12};
+  const int16_t golden[] = {1, 2, 3, 7, 8, 9, 4, 5, 6, 10, 11, 12};
+  const int axis = 1;
+  constexpr int output_dims_count = 12;
+  int16_t output_data[output_dims_count];
+
+  tflite::testing::TestPackTwoInputsQuantized<int16_t>(
       input_shape, input1_values, input_shape, input2_values, axis,
       output_shape, golden, output_data);
 }
 
-TF_LITE_MICRO_TEST(PackQuantized32MultilDimensions) {
+TF_LITE_MICRO_TEST(PackQuantizedInt32MultiDimensions) {
   int input_shape[] = {2, 2, 3};
   int output_shape[] = {3, 2, 2, 3};
   const int32_t input1_values[] = {1, 2, 3, 4, 5, 6};
@@ -267,7 +249,7 @@ TF_LITE_MICRO_TEST(PackQuantized32MultilDimensions) {
   constexpr int output_dims_count = 12;
   int32_t output_data[output_dims_count];
 
-  tflite::testing::TestPackTwoInputsQuantized32(
+  tflite::testing::TestPackTwoInputsQuantized<int32_t>(
       input_shape, input1_values, input_shape, input2_values, axis,
       output_shape, golden, output_data);
 }

From 8052aa223b76e16f7d25fd733e2234e044fcec56 Mon Sep 17 00:00:00 2001
From: andresovela <andresovela@gmail.com>
Date: Tue, 29 Oct 2024 15:26:51 +0100
Subject: [PATCH 2/4] Add int16 support to UNPACK

---
 tensorflow/lite/micro/kernels/unpack.cc      |  3 ++
 tensorflow/lite/micro/kernels/unpack_test.cc | 38 +++++++++++++++-----
 2 files changed, 33 insertions(+), 8 deletions(-)

diff --git a/tensorflow/lite/micro/kernels/unpack.cc b/tensorflow/lite/micro/kernels/unpack.cc
index 9ce168384a4..982349534ca 100644
--- a/tensorflow/lite/micro/kernels/unpack.cc
+++ b/tensorflow/lite/micro/kernels/unpack.cc
@@ -86,6 +86,9 @@ TfLiteStatus UnpackEval(TfLiteContext* context, TfLiteNode* node) {
     case kTfLiteInt32: {
       return UnpackImpl<int32_t>(context, node, input, data->num, data->axis);
     }
+    case kTfLiteInt16: {
+      return UnpackImpl<int16_t>(context, node, input, data->num, data->axis);
+    }
     case kTfLiteInt8: {
       return UnpackImpl<int8_t>(context, node, input, data->num, data->axis);
     }
diff --git a/tensorflow/lite/micro/kernels/unpack_test.cc b/tensorflow/lite/micro/kernels/unpack_test.cc
index 2e16822ad3e..11fe7c363d7 100644
--- a/tensorflow/lite/micro/kernels/unpack_test.cc
+++ b/tensorflow/lite/micro/kernels/unpack_test.cc
@@ -132,12 +132,13 @@ void TestUnpackOneOutputFloat(int* input_dims_data, const float* input_data,
   }
 }
 
-void TestUnpackThreeOutputsQuantized32(
-    int* input_dims_data, const int32_t* input_data, int axis,
-    int* output1_dims_data, const int32_t* expected_output1_data,
-    int* output2_dims_data, const int32_t* expected_output2_data,
-    int* output3_dims_data, const int32_t* expected_output3_data,
-    int32_t* output1_data, int32_t* output2_data, int32_t* output3_data) {
+template<typename T>
+void TestUnpackThreeOutputsQuantized(
+    int* input_dims_data, const T* input_data, int axis,
+    int* output1_dims_data, const T* expected_output1_data,
+    int* output2_dims_data, const T* expected_output2_data,
+    int* output3_dims_data, const T* expected_output3_data,
+    T* output1_data, T* output2_data, T* output3_data) {
   TfLiteIntArray* input_dims = IntArrayFromInts(input_dims_data);
   TfLiteIntArray* output1_dims = IntArrayFromInts(output1_dims_data);
   TfLiteIntArray* output2_dims = IntArrayFromInts(output2_dims_data);
@@ -257,7 +258,28 @@ TF_LITE_MICRO_TEST(UnpackFloatOneOutput) {
                                             output_shape, golden, output_data);
 }
 
-TF_LITE_MICRO_TEST(UnpackQuantized32ThreeOutputs) {
+TF_LITE_MICRO_TEST(UnpackQuantizedInt16ThreeOutputs) {
+  int input_shape[] = {2, 3, 2};
+  const int16_t input_values[] = {1, 2, 3, 4, 5, 6};
+  int output1_shape[] = {1, 2};
+  const int16_t output1_golden[] = {1, 2};
+  int output2_shape[] = {1, 2};
+  const int16_t output2_golden[] = {3, 4};
+  int output3_shape[] = {1, 2};
+  const int16_t output3_golden[] = {5, 6};
+  constexpr int output1_dims_count = 2;
+  constexpr int output2_dims_count = 2;
+  constexpr int output3_dims_count = 2;
+  int16_t output1_data[output1_dims_count];
+  int16_t output2_data[output2_dims_count];
+  int16_t output3_data[output3_dims_count];
+  tflite::testing::TestUnpackThreeOutputsQuantized<int16_t>(
+      input_shape, input_values, 0, output1_shape, output1_golden,
+      output2_shape, output2_golden, output3_shape, output3_golden,
+      output1_data, output2_data, output3_data);
+}
+
+TF_LITE_MICRO_TEST(UnpackQuantizedInt32ThreeOutputs) {
   int input_shape[] = {2, 3, 2};
   const int32_t input_values[] = {1, 2, 3, 4, 5, 6};
   int output1_shape[] = {1, 2};
@@ -272,7 +294,7 @@ TF_LITE_MICRO_TEST(UnpackQuantized32ThreeOutputs) {
   int32_t output1_data[output1_dims_count];
   int32_t output2_data[output2_dims_count];
   int32_t output3_data[output3_dims_count];
-  tflite::testing::TestUnpackThreeOutputsQuantized32(
+  tflite::testing::TestUnpackThreeOutputsQuantized<int32_t>(
       input_shape, input_values, 0, output1_shape, output1_golden,
       output2_shape, output2_golden, output3_shape, output3_golden,
       output1_data, output2_data, output3_data);

From 877e0f0ab32b0e41c539b2cae5848128beee6d8c Mon Sep 17 00:00:00 2001
From: andresovela <andresovela@gmail.com>
Date: Tue, 29 Oct 2024 15:28:39 +0100
Subject: [PATCH 3/4] Fix formatting

---
 tensorflow/lite/micro/kernels/pack.cc        |  2 +-
 tensorflow/lite/micro/kernels/pack_test.cc   | 10 +++++-----
 tensorflow/lite/micro/kernels/unpack_test.cc | 12 ++++++------
 3 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/tensorflow/lite/micro/kernels/pack.cc b/tensorflow/lite/micro/kernels/pack.cc
index 21158936572..413cb4eafbb 100644
--- a/tensorflow/lite/micro/kernels/pack.cc
+++ b/tensorflow/lite/micro/kernels/pack.cc
@@ -87,7 +87,7 @@ TfLiteStatus PackEval(TfLiteContext* context, TfLiteNode* node) {
     }
     case kTfLiteInt16: {
       return PackImpl<int16_t>(context, node, output, data->values_count,
-                              data->axis);
+                               data->axis);
     }
     case kTfLiteInt32: {
       return PackImpl<int32_t>(context, node, output, data->values_count,
diff --git a/tensorflow/lite/micro/kernels/pack_test.cc b/tensorflow/lite/micro/kernels/pack_test.cc
index 6deba5c1b4a..89b376ae4ea 100644
--- a/tensorflow/lite/micro/kernels/pack_test.cc
+++ b/tensorflow/lite/micro/kernels/pack_test.cc
@@ -110,11 +110,11 @@ void TestPackThreeInputsFloat(int* input1_dims_data, const float* input1_data,
                       1e-5f, output_data);
 }
 
-template<typename T>
-void TestPackTwoInputsQuantized(
-    int* input1_dims_data, const T* input1_data, int* input2_dims_data,
-    const T* input2_data, int axis, int* output_dims_data,
-    const T* expected_output_data, T* output_data) {
+template <typename T>
+void TestPackTwoInputsQuantized(int* input1_dims_data, const T* input1_data,
+                                int* input2_dims_data, const T* input2_data,
+                                int axis, int* output_dims_data,
+                                const T* expected_output_data, T* output_data) {
   TfLiteIntArray* input1_dims = IntArrayFromInts(input1_dims_data);
   TfLiteIntArray* input2_dims = IntArrayFromInts(input2_dims_data);
   TfLiteIntArray* output_dims = IntArrayFromInts(output_dims_data);
diff --git a/tensorflow/lite/micro/kernels/unpack_test.cc b/tensorflow/lite/micro/kernels/unpack_test.cc
index 11fe7c363d7..d7ddb3a0ab4 100644
--- a/tensorflow/lite/micro/kernels/unpack_test.cc
+++ b/tensorflow/lite/micro/kernels/unpack_test.cc
@@ -132,13 +132,13 @@ void TestUnpackOneOutputFloat(int* input_dims_data, const float* input_data,
   }
 }
 
-template<typename T>
+template <typename T>
 void TestUnpackThreeOutputsQuantized(
-    int* input_dims_data, const T* input_data, int axis,
-    int* output1_dims_data, const T* expected_output1_data,
-    int* output2_dims_data, const T* expected_output2_data,
-    int* output3_dims_data, const T* expected_output3_data,
-    T* output1_data, T* output2_data, T* output3_data) {
+    int* input_dims_data, const T* input_data, int axis, int* output1_dims_data,
+    const T* expected_output1_data, int* output2_dims_data,
+    const T* expected_output2_data, int* output3_dims_data,
+    const T* expected_output3_data, T* output1_data, T* output2_data,
+    T* output3_data) {
   TfLiteIntArray* input_dims = IntArrayFromInts(input_dims_data);
   TfLiteIntArray* output1_dims = IntArrayFromInts(output1_dims_data);
   TfLiteIntArray* output2_dims = IntArrayFromInts(output2_dims_data);

From 3a087112362abe76c6971b8241feaf379b3c4338 Mon Sep 17 00:00:00 2001
From: andresovela <andresovela@gmail.com>
Date: Tue, 4 Mar 2025 14:15:48 +0100
Subject: [PATCH 4/4] Code review

---
 tensorflow/lite/micro/kernels/pack.cc        |  2 +-
 tensorflow/lite/micro/kernels/pack_test.cc   | 26 ++++++++++----------
 tensorflow/lite/micro/kernels/unpack.cc      |  2 +-
 tensorflow/lite/micro/kernels/unpack_test.cc | 24 +++++++++---------
 4 files changed, 28 insertions(+), 26 deletions(-)

diff --git a/tensorflow/lite/micro/kernels/pack.cc b/tensorflow/lite/micro/kernels/pack.cc
index 413cb4eafbb..88072416f09 100644
--- a/tensorflow/lite/micro/kernels/pack.cc
+++ b/tensorflow/lite/micro/kernels/pack.cc
@@ -1,4 +1,4 @@
-/* Copyright 2022 The TensorFlow Authors. All Rights Reserved.
+/* Copyright 2025 The TensorFlow Authors. All Rights Reserved.
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
diff --git a/tensorflow/lite/micro/kernels/pack_test.cc b/tensorflow/lite/micro/kernels/pack_test.cc
index 89b376ae4ea..90fbb98e83e 100644
--- a/tensorflow/lite/micro/kernels/pack_test.cc
+++ b/tensorflow/lite/micro/kernels/pack_test.cc
@@ -1,4 +1,4 @@
-/* Copyright 2019 The TensorFlow Authors. All Rights Reserved.
+/* Copyright 2025 The TensorFlow Authors. All Rights Reserved.
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
@@ -111,10 +111,10 @@ void TestPackThreeInputsFloat(int* input1_dims_data, const float* input1_data,
 }
 
 template <typename T>
-void TestPackTwoInputsQuantized(int* input1_dims_data, const T* input1_data,
-                                int* input2_dims_data, const T* input2_data,
-                                int axis, int* output_dims_data,
-                                const T* expected_output_data, T* output_data) {
+void TestPackTwoInputs(int* input1_dims_data, const T* input1_data,
+                       int* input2_dims_data, const T* input2_data, int axis,
+                       int* output_dims_data, const T* expected_output_data,
+                       T* output_data) {
   TfLiteIntArray* input1_dims = IntArrayFromInts(input1_dims_data);
   TfLiteIntArray* input2_dims = IntArrayFromInts(input2_dims_data);
   TfLiteIntArray* output_dims = IntArrayFromInts(output_dims_data);
@@ -209,7 +209,7 @@ TF_LITE_MICRO_TEST(PackFloatMultiDimensions) {
                                           output_shape, golden, output_data);
 }
 
-TF_LITE_MICRO_TEST(PackQuantizedInt8MultiDimensions) {
+TF_LITE_MICRO_TEST(PackInt8MultiDimensions) {
   int input_shape[] = {2, 2, 3};
   int output_shape[] = {3, 2, 2, 3};
   const int8_t input1_values[] = {1, 2, 3, 4, 5, 6};
@@ -219,12 +219,12 @@ TF_LITE_MICRO_TEST(PackQuantizedInt8MultiDimensions) {
   constexpr int output_dims_count = 12;
   int8_t output_data[output_dims_count];
 
-  tflite::testing::TestPackTwoInputsQuantized<int8_t>(
-      input_shape, input1_values, input_shape, input2_values, axis,
-      output_shape, golden, output_data);
+  tflite::testing::TestPackTwoInputs<int8_t>(input_shape, input1_values,
+                                             input_shape, input2_values, axis,
+                                             output_shape, golden, output_data);
 }
 
-TF_LITE_MICRO_TEST(PackQuantizedInt16MultiDimensions) {
+TF_LITE_MICRO_TEST(PackInt16MultiDimensions) {
   int input_shape[] = {2, 2, 3};
   int output_shape[] = {3, 2, 2, 3};
   const int16_t input1_values[] = {1, 2, 3, 4, 5, 6};
@@ -234,12 +234,12 @@ TF_LITE_MICRO_TEST(PackQuantizedInt16MultiDimensions) {
   constexpr int output_dims_count = 12;
   int16_t output_data[output_dims_count];
 
-  tflite::testing::TestPackTwoInputsQuantized<int16_t>(
+  tflite::testing::TestPackTwoInputs<int16_t>(
       input_shape, input1_values, input_shape, input2_values, axis,
       output_shape, golden, output_data);
 }
 
-TF_LITE_MICRO_TEST(PackQuantizedInt32MultiDimensions) {
+TF_LITE_MICRO_TEST(PackInt32MultiDimensions) {
   int input_shape[] = {2, 2, 3};
   int output_shape[] = {3, 2, 2, 3};
   const int32_t input1_values[] = {1, 2, 3, 4, 5, 6};
@@ -249,7 +249,7 @@ TF_LITE_MICRO_TEST(PackQuantizedInt32MultiDimensions) {
   constexpr int output_dims_count = 12;
   int32_t output_data[output_dims_count];
 
-  tflite::testing::TestPackTwoInputsQuantized<int32_t>(
+  tflite::testing::TestPackTwoInputs<int32_t>(
       input_shape, input1_values, input_shape, input2_values, axis,
       output_shape, golden, output_data);
 }
diff --git a/tensorflow/lite/micro/kernels/unpack.cc b/tensorflow/lite/micro/kernels/unpack.cc
index 982349534ca..af3a269c43a 100644
--- a/tensorflow/lite/micro/kernels/unpack.cc
+++ b/tensorflow/lite/micro/kernels/unpack.cc
@@ -1,4 +1,4 @@
-/* Copyright 2023 The TensorFlow Authors. All Rights Reserved.
+/* Copyright 2025 The TensorFlow Authors. All Rights Reserved.
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
diff --git a/tensorflow/lite/micro/kernels/unpack_test.cc b/tensorflow/lite/micro/kernels/unpack_test.cc
index d7ddb3a0ab4..59c8946424a 100644
--- a/tensorflow/lite/micro/kernels/unpack_test.cc
+++ b/tensorflow/lite/micro/kernels/unpack_test.cc
@@ -1,4 +1,4 @@
-/* Copyright 2023 The TensorFlow Authors. All Rights Reserved.
+/* Copyright 2025 The TensorFlow Authors. All Rights Reserved.
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
@@ -133,12 +133,14 @@ void TestUnpackOneOutputFloat(int* input_dims_data, const float* input_data,
 }
 
 template <typename T>
-void TestUnpackThreeOutputsQuantized(
-    int* input_dims_data, const T* input_data, int axis, int* output1_dims_data,
-    const T* expected_output1_data, int* output2_dims_data,
-    const T* expected_output2_data, int* output3_dims_data,
-    const T* expected_output3_data, T* output1_data, T* output2_data,
-    T* output3_data) {
+void TestUnpackThreeOutputs(int* input_dims_data, const T* input_data, int axis,
+                            int* output1_dims_data,
+                            const T* expected_output1_data,
+                            int* output2_dims_data,
+                            const T* expected_output2_data,
+                            int* output3_dims_data,
+                            const T* expected_output3_data, T* output1_data,
+                            T* output2_data, T* output3_data) {
   TfLiteIntArray* input_dims = IntArrayFromInts(input_dims_data);
   TfLiteIntArray* output1_dims = IntArrayFromInts(output1_dims_data);
   TfLiteIntArray* output2_dims = IntArrayFromInts(output2_dims_data);
@@ -258,7 +260,7 @@ TF_LITE_MICRO_TEST(UnpackFloatOneOutput) {
                                             output_shape, golden, output_data);
 }
 
-TF_LITE_MICRO_TEST(UnpackQuantizedInt16ThreeOutputs) {
+TF_LITE_MICRO_TEST(UnpackInt16ThreeOutputs) {
   int input_shape[] = {2, 3, 2};
   const int16_t input_values[] = {1, 2, 3, 4, 5, 6};
   int output1_shape[] = {1, 2};
@@ -273,13 +275,13 @@ TF_LITE_MICRO_TEST(UnpackQuantizedInt16ThreeOutputs) {
   int16_t output1_data[output1_dims_count];
   int16_t output2_data[output2_dims_count];
   int16_t output3_data[output3_dims_count];
-  tflite::testing::TestUnpackThreeOutputsQuantized<int16_t>(
+  tflite::testing::TestUnpackThreeOutputs<int16_t>(
       input_shape, input_values, 0, output1_shape, output1_golden,
       output2_shape, output2_golden, output3_shape, output3_golden,
       output1_data, output2_data, output3_data);
 }
 
-TF_LITE_MICRO_TEST(UnpackQuantizedInt32ThreeOutputs) {
+TF_LITE_MICRO_TEST(UnpackInt32ThreeOutputs) {
   int input_shape[] = {2, 3, 2};
   const int32_t input_values[] = {1, 2, 3, 4, 5, 6};
   int output1_shape[] = {1, 2};
@@ -294,7 +296,7 @@ TF_LITE_MICRO_TEST(UnpackQuantizedInt32ThreeOutputs) {
   int32_t output1_data[output1_dims_count];
   int32_t output2_data[output2_dims_count];
   int32_t output3_data[output3_dims_count];
-  tflite::testing::TestUnpackThreeOutputsQuantized<int32_t>(
+  tflite::testing::TestUnpackThreeOutputs<int32_t>(
       input_shape, input_values, 0, output1_shape, output1_golden,
       output2_shape, output2_golden, output3_shape, output3_golden,
       output1_data, output2_data, output3_data);