diff options
author | Slava Shklyaev <slavash@google.com> | 2020-06-23 11:52:22 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2020-06-23 11:52:22 +0000 |
commit | 73c6bfc5cc220b0f831efd1642e752bb86775425 (patch) | |
tree | c79c6d5ff485502e72519ca7e16c02c9f4e267fe | |
parent | 3dd4c2d3f67b47409d56e025eca50832a96bdb3c (diff) | |
parent | 0c20be10ba449f0152d65d8ecbe399a9f1b1c191 (diff) | |
download | ml-73c6bfc5cc220b0f831efd1642e752bb86775425.tar.gz |
Merge "Add control flow tests with unknown dimensions" into rvc-dev am: 39da16fbdf am: 0c20be10ba
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/ml/+/11838078
Change-Id: I68735ae90723b8bcedcc7638de8aebd97910d138
8 files changed, 90544 insertions, 0 deletions
diff --git a/nn/runtime/test/generated/spec_V1_3_cts_only/if_simple_unknown_dimension.example.cpp b/nn/runtime/test/generated/spec_V1_3_cts_only/if_simple_unknown_dimension.example.cpp new file mode 100644 index 000000000..91b21f229 --- /dev/null +++ b/nn/runtime/test/generated/spec_V1_3_cts_only/if_simple_unknown_dimension.example.cpp @@ -0,0 +1,6286 @@ +// Generated from if_simple_unknown_dimension.mod.py +// DO NOT EDIT +// clang-format off +#include "TestHarness.h" +using namespace test_helper; + +namespace generated_tests::if_simple_unknown_dimension { + +const TestModel& get_test_model_true() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {0, 3}, + .operands = {{ // x + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({true}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // z + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({11.0f, 12.0f, 13.0f, 14.0f, 15.0f, 16.0f, 17.0f, 18.0f, 19.0f, 20.0f, 21.0f, 22.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }}, + .outputIndexes = {4} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_true = TestModelManager::get().add("if_simple_unknown_dimension_true", get_test_model_true()); + +} // namespace generated_tests::if_simple_unknown_dimension + +namespace generated_tests::if_simple_unknown_dimension { + +const TestModel& get_test_model_true_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {0, 5}, + .operands = {{ // x + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({true}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // z + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({11.0f, 12.0f, 13.0f, 14.0f, 15.0f, 16.0f, 17.0f, 18.0f, 19.0f, 20.0f, 21.0f, 22.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // y_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // dummy + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {5, 6, 7}, + .outputs = {3}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }}, + .outputIndexes = {4} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_true_all_inputs_as_internal = TestModelManager::get().add("if_simple_unknown_dimension_true_all_inputs_as_internal", get_test_model_true_all_inputs_as_internal()); + +} // namespace generated_tests::if_simple_unknown_dimension + +namespace generated_tests::if_simple_unknown_dimension { + +const TestModel& get_test_model_true_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {0, 3}, + .operands = {{ // x + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({true}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // z + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // dummy1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({11.0f, 12.0f, 13.0f, 14.0f, 15.0f, 16.0f, 17.0f, 18.0f, 19.0f, 20.0f, 21.0f, 22.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }, { + .inputs = {4, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {7} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_true_all_outputs_as_internal = TestModelManager::get().add("if_simple_unknown_dimension_true_all_outputs_as_internal", get_test_model_true_all_outputs_as_internal()); + +} // namespace generated_tests::if_simple_unknown_dimension + +namespace generated_tests::if_simple_unknown_dimension { + +const TestModel& get_test_model_true_relaxed() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = true, + .main = { + .inputIndexes = {0, 3}, + .operands = {{ // x + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({true}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // z + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({11.0f, 12.0f, 13.0f, 14.0f, 15.0f, 16.0f, 17.0f, 18.0f, 19.0f, 20.0f, 21.0f, 22.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }}, + .outputIndexes = {4} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_true_relaxed = TestModelManager::get().add("if_simple_unknown_dimension_true_relaxed", get_test_model_true_relaxed()); + +} // namespace generated_tests::if_simple_unknown_dimension + +namespace generated_tests::if_simple_unknown_dimension { + +const TestModel& get_test_model_true_relaxed_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = true, + .main = { + .inputIndexes = {0, 5}, + .operands = {{ // x + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({true}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // z + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({11.0f, 12.0f, 13.0f, 14.0f, 15.0f, 16.0f, 17.0f, 18.0f, 19.0f, 20.0f, 21.0f, 22.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // y_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // dummy5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param17 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {5, 6, 7}, + .outputs = {3}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }}, + .outputIndexes = {4} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_true_relaxed_all_inputs_as_internal = TestModelManager::get().add("if_simple_unknown_dimension_true_relaxed_all_inputs_as_internal", get_test_model_true_relaxed_all_inputs_as_internal()); + +} // namespace generated_tests::if_simple_unknown_dimension + +namespace generated_tests::if_simple_unknown_dimension { + +const TestModel& get_test_model_true_relaxed_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = true, + .main = { + .inputIndexes = {0, 3}, + .operands = {{ // x + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({true}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // z + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // dummy6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param18 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({11.0f, 12.0f, 13.0f, 14.0f, 15.0f, 16.0f, 17.0f, 18.0f, 19.0f, 20.0f, 21.0f, 22.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }, { + .inputs = {4, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {7} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_true_relaxed_all_outputs_as_internal = TestModelManager::get().add("if_simple_unknown_dimension_true_relaxed_all_outputs_as_internal", get_test_model_true_relaxed_all_outputs_as_internal()); + +} // namespace generated_tests::if_simple_unknown_dimension + +namespace generated_tests::if_simple_unknown_dimension { + +const TestModel& get_test_model_true_float16() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {0, 3}, + .operands = {{ // x + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({true}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // z + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({11.0f, 12.0f, 13.0f, 14.0f, 15.0f, 16.0f, 17.0f, 18.0f, 19.0f, 20.0f, 21.0f, 22.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }}, + .outputIndexes = {4} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_true_float16 = TestModelManager::get().add("if_simple_unknown_dimension_true_float16", get_test_model_true_float16()); + +} // namespace generated_tests::if_simple_unknown_dimension + +namespace generated_tests::if_simple_unknown_dimension { + +const TestModel& get_test_model_true_float16_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {0, 5}, + .operands = {{ // x + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({true}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // z + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({11.0f, 12.0f, 13.0f, 14.0f, 15.0f, 16.0f, 17.0f, 18.0f, 19.0f, 20.0f, 21.0f, 22.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // y_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // dummy10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {5, 6, 7}, + .outputs = {3}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }}, + .outputIndexes = {4} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_true_float16_all_inputs_as_internal = TestModelManager::get().add("if_simple_unknown_dimension_true_float16_all_inputs_as_internal", get_test_model_true_float16_all_inputs_as_internal()); + +} // namespace generated_tests::if_simple_unknown_dimension + +namespace generated_tests::if_simple_unknown_dimension { + +const TestModel& get_test_model_true_float16_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {0, 3}, + .operands = {{ // x + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({true}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // z + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // dummy11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({11.0f, 12.0f, 13.0f, 14.0f, 15.0f, 16.0f, 17.0f, 18.0f, 19.0f, 20.0f, 21.0f, 22.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }, { + .inputs = {4, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {7} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_true_float16_all_outputs_as_internal = TestModelManager::get().add("if_simple_unknown_dimension_true_float16_all_outputs_as_internal", get_test_model_true_float16_all_outputs_as_internal()); + +} // namespace generated_tests::if_simple_unknown_dimension + +namespace generated_tests::if_simple_unknown_dimension { + +const TestModel& get_test_model_true_int32() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {0, 3}, + .operands = {{ // x + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({true}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // z + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }}, + .outputIndexes = {4} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({10}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({10}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_true_int32 = TestModelManager::get().add("if_simple_unknown_dimension_true_int32", get_test_model_true_int32()); + +} // namespace generated_tests::if_simple_unknown_dimension + +namespace generated_tests::if_simple_unknown_dimension { + +const TestModel& get_test_model_true_quant8() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {0, 3}, + .operands = {{ // x + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({true}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // z + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }}, + .outputIndexes = {4} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({110}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({110}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_true_quant8 = TestModelManager::get().add("if_simple_unknown_dimension_true_quant8", get_test_model_true_quant8()); + +} // namespace generated_tests::if_simple_unknown_dimension + +namespace generated_tests::if_simple_unknown_dimension { + +const TestModel& get_test_model_true_quant8_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {0, 5}, + .operands = {{ // x + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({true}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // z + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // y_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // dummy15 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({100}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // param27 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {5, 6, 7}, + .outputs = {3}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }}, + .outputIndexes = {4} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({110}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({110}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_true_quant8_all_inputs_as_internal = TestModelManager::get().add("if_simple_unknown_dimension_true_quant8_all_inputs_as_internal", get_test_model_true_quant8_all_inputs_as_internal()); + +} // namespace generated_tests::if_simple_unknown_dimension + +namespace generated_tests::if_simple_unknown_dimension { + +const TestModel& get_test_model_true_quant8_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {0, 3}, + .operands = {{ // x + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({true}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // z + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // dummy16 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({100}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // param28 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }, { + .inputs = {4, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {7} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({110}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({110}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_true_quant8_all_outputs_as_internal = TestModelManager::get().add("if_simple_unknown_dimension_true_quant8_all_outputs_as_internal", get_test_model_true_quant8_all_outputs_as_internal()); + +} // namespace generated_tests::if_simple_unknown_dimension + +namespace generated_tests::if_simple_unknown_dimension { + +const TestModel& get_test_model_true_quant8_signed() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {0, 3}, + .operands = {{ // x + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({true}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // z + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }}, + .outputIndexes = {4} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({110}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({110}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_true_quant8_signed = TestModelManager::get().add("if_simple_unknown_dimension_true_quant8_signed", get_test_model_true_quant8_signed()); + +} // namespace generated_tests::if_simple_unknown_dimension + +namespace generated_tests::if_simple_unknown_dimension { + +const TestModel& get_test_model_true_quant8_signed_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {0, 5}, + .operands = {{ // x + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({true}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // z + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // y_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // dummy20 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({100}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // param32 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {5, 6, 7}, + .outputs = {3}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }}, + .outputIndexes = {4} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({110}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({110}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_true_quant8_signed_all_inputs_as_internal = TestModelManager::get().add("if_simple_unknown_dimension_true_quant8_signed_all_inputs_as_internal", get_test_model_true_quant8_signed_all_inputs_as_internal()); + +} // namespace generated_tests::if_simple_unknown_dimension + +namespace generated_tests::if_simple_unknown_dimension { + +const TestModel& get_test_model_true_quant8_signed_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {0, 3}, + .operands = {{ // x + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({true}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // z + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // dummy21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({100}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // param33 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }, { + .inputs = {4, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {7} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({110}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({110}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_true_quant8_signed_all_outputs_as_internal = TestModelManager::get().add("if_simple_unknown_dimension_true_quant8_signed_all_outputs_as_internal", get_test_model_true_quant8_signed_all_outputs_as_internal()); + +} // namespace generated_tests::if_simple_unknown_dimension + +namespace generated_tests::if_simple_unknown_dimension { + +const TestModel& get_test_model_false() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {0, 3}, + .operands = {{ // x1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({false}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // z3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({-9.0f, -8.0f, -7.0f, -6.0f, -5.0f, -4.0f, -3.0f, -2.0f, -1.0f, 0.0f, 1.0f, 2.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }}, + .outputIndexes = {4} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_false = TestModelManager::get().add("if_simple_unknown_dimension_false", get_test_model_false()); + +} // namespace generated_tests::if_simple_unknown_dimension + +namespace generated_tests::if_simple_unknown_dimension { + +const TestModel& get_test_model_false_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {0, 5}, + .operands = {{ // x1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({false}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // z3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({-9.0f, -8.0f, -7.0f, -6.0f, -5.0f, -4.0f, -3.0f, -2.0f, -1.0f, 0.0f, 1.0f, 2.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // y3_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // dummy25 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param37 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {5, 6, 7}, + .outputs = {3}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }}, + .outputIndexes = {4} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_false_all_inputs_as_internal = TestModelManager::get().add("if_simple_unknown_dimension_false_all_inputs_as_internal", get_test_model_false_all_inputs_as_internal()); + +} // namespace generated_tests::if_simple_unknown_dimension + +namespace generated_tests::if_simple_unknown_dimension { + +const TestModel& get_test_model_false_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {0, 3}, + .operands = {{ // x1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({false}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // z3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // dummy26 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param38 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z3_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({-9.0f, -8.0f, -7.0f, -6.0f, -5.0f, -4.0f, -3.0f, -2.0f, -1.0f, 0.0f, 1.0f, 2.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }, { + .inputs = {4, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {7} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_false_all_outputs_as_internal = TestModelManager::get().add("if_simple_unknown_dimension_false_all_outputs_as_internal", get_test_model_false_all_outputs_as_internal()); + +} // namespace generated_tests::if_simple_unknown_dimension + +namespace generated_tests::if_simple_unknown_dimension { + +const TestModel& get_test_model_false_relaxed() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = true, + .main = { + .inputIndexes = {0, 3}, + .operands = {{ // x1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({false}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // z3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({-9.0f, -8.0f, -7.0f, -6.0f, -5.0f, -4.0f, -3.0f, -2.0f, -1.0f, 0.0f, 1.0f, 2.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }}, + .outputIndexes = {4} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_false_relaxed = TestModelManager::get().add("if_simple_unknown_dimension_false_relaxed", get_test_model_false_relaxed()); + +} // namespace generated_tests::if_simple_unknown_dimension + +namespace generated_tests::if_simple_unknown_dimension { + +const TestModel& get_test_model_false_relaxed_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = true, + .main = { + .inputIndexes = {0, 5}, + .operands = {{ // x1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({false}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // z3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({-9.0f, -8.0f, -7.0f, -6.0f, -5.0f, -4.0f, -3.0f, -2.0f, -1.0f, 0.0f, 1.0f, 2.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // y3_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // dummy30 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param42 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {5, 6, 7}, + .outputs = {3}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }}, + .outputIndexes = {4} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_false_relaxed_all_inputs_as_internal = TestModelManager::get().add("if_simple_unknown_dimension_false_relaxed_all_inputs_as_internal", get_test_model_false_relaxed_all_inputs_as_internal()); + +} // namespace generated_tests::if_simple_unknown_dimension + +namespace generated_tests::if_simple_unknown_dimension { + +const TestModel& get_test_model_false_relaxed_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = true, + .main = { + .inputIndexes = {0, 3}, + .operands = {{ // x1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({false}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // z3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // dummy31 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param43 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z3_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({-9.0f, -8.0f, -7.0f, -6.0f, -5.0f, -4.0f, -3.0f, -2.0f, -1.0f, 0.0f, 1.0f, 2.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }, { + .inputs = {4, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {7} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_false_relaxed_all_outputs_as_internal = TestModelManager::get().add("if_simple_unknown_dimension_false_relaxed_all_outputs_as_internal", get_test_model_false_relaxed_all_outputs_as_internal()); + +} // namespace generated_tests::if_simple_unknown_dimension + +namespace generated_tests::if_simple_unknown_dimension { + +const TestModel& get_test_model_false_float16() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {0, 3}, + .operands = {{ // x1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({false}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // z3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({-9.0f, -8.0f, -7.0f, -6.0f, -5.0f, -4.0f, -3.0f, -2.0f, -1.0f, 0.0f, 1.0f, 2.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }}, + .outputIndexes = {4} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_false_float16 = TestModelManager::get().add("if_simple_unknown_dimension_false_float16", get_test_model_false_float16()); + +} // namespace generated_tests::if_simple_unknown_dimension + +namespace generated_tests::if_simple_unknown_dimension { + +const TestModel& get_test_model_false_float16_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {0, 5}, + .operands = {{ // x1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({false}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // z3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({-9.0f, -8.0f, -7.0f, -6.0f, -5.0f, -4.0f, -3.0f, -2.0f, -1.0f, 0.0f, 1.0f, 2.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // y3_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // dummy35 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param47 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {5, 6, 7}, + .outputs = {3}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }}, + .outputIndexes = {4} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_false_float16_all_inputs_as_internal = TestModelManager::get().add("if_simple_unknown_dimension_false_float16_all_inputs_as_internal", get_test_model_false_float16_all_inputs_as_internal()); + +} // namespace generated_tests::if_simple_unknown_dimension + +namespace generated_tests::if_simple_unknown_dimension { + +const TestModel& get_test_model_false_float16_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {0, 3}, + .operands = {{ // x1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({false}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // z3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // dummy36 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param48 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z3_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({-9.0f, -8.0f, -7.0f, -6.0f, -5.0f, -4.0f, -3.0f, -2.0f, -1.0f, 0.0f, 1.0f, 2.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }, { + .inputs = {4, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {7} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_false_float16_all_outputs_as_internal = TestModelManager::get().add("if_simple_unknown_dimension_false_float16_all_outputs_as_internal", get_test_model_false_float16_all_outputs_as_internal()); + +} // namespace generated_tests::if_simple_unknown_dimension + +namespace generated_tests::if_simple_unknown_dimension { + +const TestModel& get_test_model_false_int32() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {0, 3}, + .operands = {{ // x1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({false}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // z3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-9, -8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }}, + .outputIndexes = {4} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({10}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({10}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_false_int32 = TestModelManager::get().add("if_simple_unknown_dimension_false_int32", get_test_model_false_int32()); + +} // namespace generated_tests::if_simple_unknown_dimension + +namespace generated_tests::if_simple_unknown_dimension { + +const TestModel& get_test_model_false_quant8() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {0, 3}, + .operands = {{ // x1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({false}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // z3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }}, + .outputIndexes = {4} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({110}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({110}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_false_quant8 = TestModelManager::get().add("if_simple_unknown_dimension_false_quant8", get_test_model_false_quant8()); + +} // namespace generated_tests::if_simple_unknown_dimension + +namespace generated_tests::if_simple_unknown_dimension { + +const TestModel& get_test_model_false_quant8_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {0, 5}, + .operands = {{ // x1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({false}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // z3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // y3_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // dummy40 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({100}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // param52 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {5, 6, 7}, + .outputs = {3}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }}, + .outputIndexes = {4} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({110}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({110}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_false_quant8_all_inputs_as_internal = TestModelManager::get().add("if_simple_unknown_dimension_false_quant8_all_inputs_as_internal", get_test_model_false_quant8_all_inputs_as_internal()); + +} // namespace generated_tests::if_simple_unknown_dimension + +namespace generated_tests::if_simple_unknown_dimension { + +const TestModel& get_test_model_false_quant8_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {0, 3}, + .operands = {{ // x1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({false}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // z3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // dummy41 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({100}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // param53 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z3_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }, { + .inputs = {4, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {7} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({110}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({110}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_false_quant8_all_outputs_as_internal = TestModelManager::get().add("if_simple_unknown_dimension_false_quant8_all_outputs_as_internal", get_test_model_false_quant8_all_outputs_as_internal()); + +} // namespace generated_tests::if_simple_unknown_dimension + +namespace generated_tests::if_simple_unknown_dimension { + +const TestModel& get_test_model_false_quant8_signed() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {0, 3}, + .operands = {{ // x1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({false}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // z3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }}, + .outputIndexes = {4} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({110}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({110}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_false_quant8_signed = TestModelManager::get().add("if_simple_unknown_dimension_false_quant8_signed", get_test_model_false_quant8_signed()); + +} // namespace generated_tests::if_simple_unknown_dimension + +namespace generated_tests::if_simple_unknown_dimension { + +const TestModel& get_test_model_false_quant8_signed_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {0, 5}, + .operands = {{ // x1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({false}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // z3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // y3_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // dummy45 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({100}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // param57 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {5, 6, 7}, + .outputs = {3}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }}, + .outputIndexes = {4} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({110}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({110}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_false_quant8_signed_all_inputs_as_internal = TestModelManager::get().add("if_simple_unknown_dimension_false_quant8_signed_all_inputs_as_internal", get_test_model_false_quant8_signed_all_inputs_as_internal()); + +} // namespace generated_tests::if_simple_unknown_dimension + +namespace generated_tests::if_simple_unknown_dimension { + +const TestModel& get_test_model_false_quant8_signed_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {0, 3}, + .operands = {{ // x1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({false}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // z3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // dummy46 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({100}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // param58 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z3_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }, { + .inputs = {4, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {7} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({110}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({110}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {3, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_false_quant8_signed_all_outputs_as_internal = TestModelManager::get().add("if_simple_unknown_dimension_false_quant8_signed_all_outputs_as_internal", get_test_model_false_quant8_signed_all_outputs_as_internal()); + +} // namespace generated_tests::if_simple_unknown_dimension + diff --git a/nn/runtime/test/generated/spec_V1_3_cts_only/if_simple_unknown_rank.example.cpp b/nn/runtime/test/generated/spec_V1_3_cts_only/if_simple_unknown_rank.example.cpp new file mode 100644 index 000000000..6c852fa0d --- /dev/null +++ b/nn/runtime/test/generated/spec_V1_3_cts_only/if_simple_unknown_rank.example.cpp @@ -0,0 +1,6286 @@ +// Generated from if_simple_unknown_rank.mod.py +// DO NOT EDIT +// clang-format off +#include "TestHarness.h" +using namespace test_helper; + +namespace generated_tests::if_simple_unknown_rank { + +const TestModel& get_test_model_true() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {0, 3}, + .operands = {{ // x + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({true}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // z + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({11.0f, 12.0f, 13.0f, 14.0f, 15.0f, 16.0f, 17.0f, 18.0f, 19.0f, 20.0f, 21.0f, 22.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }}, + .outputIndexes = {4} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_true = TestModelManager::get().add("if_simple_unknown_rank_true", get_test_model_true()); + +} // namespace generated_tests::if_simple_unknown_rank + +namespace generated_tests::if_simple_unknown_rank { + +const TestModel& get_test_model_true_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {0, 5}, + .operands = {{ // x + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({true}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // z + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({11.0f, 12.0f, 13.0f, 14.0f, 15.0f, 16.0f, 17.0f, 18.0f, 19.0f, 20.0f, 21.0f, 22.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // y_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // dummy + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {5, 6, 7}, + .outputs = {3}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }}, + .outputIndexes = {4} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_true_all_inputs_as_internal = TestModelManager::get().add("if_simple_unknown_rank_true_all_inputs_as_internal", get_test_model_true_all_inputs_as_internal()); + +} // namespace generated_tests::if_simple_unknown_rank + +namespace generated_tests::if_simple_unknown_rank { + +const TestModel& get_test_model_true_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {0, 3}, + .operands = {{ // x + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({true}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // z + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // dummy1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({11.0f, 12.0f, 13.0f, 14.0f, 15.0f, 16.0f, 17.0f, 18.0f, 19.0f, 20.0f, 21.0f, 22.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }, { + .inputs = {4, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {7} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_true_all_outputs_as_internal = TestModelManager::get().add("if_simple_unknown_rank_true_all_outputs_as_internal", get_test_model_true_all_outputs_as_internal()); + +} // namespace generated_tests::if_simple_unknown_rank + +namespace generated_tests::if_simple_unknown_rank { + +const TestModel& get_test_model_true_relaxed() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = true, + .main = { + .inputIndexes = {0, 3}, + .operands = {{ // x + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({true}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // z + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({11.0f, 12.0f, 13.0f, 14.0f, 15.0f, 16.0f, 17.0f, 18.0f, 19.0f, 20.0f, 21.0f, 22.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }}, + .outputIndexes = {4} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_true_relaxed = TestModelManager::get().add("if_simple_unknown_rank_true_relaxed", get_test_model_true_relaxed()); + +} // namespace generated_tests::if_simple_unknown_rank + +namespace generated_tests::if_simple_unknown_rank { + +const TestModel& get_test_model_true_relaxed_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = true, + .main = { + .inputIndexes = {0, 5}, + .operands = {{ // x + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({true}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // z + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({11.0f, 12.0f, 13.0f, 14.0f, 15.0f, 16.0f, 17.0f, 18.0f, 19.0f, 20.0f, 21.0f, 22.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // y_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // dummy5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param17 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {5, 6, 7}, + .outputs = {3}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }}, + .outputIndexes = {4} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_true_relaxed_all_inputs_as_internal = TestModelManager::get().add("if_simple_unknown_rank_true_relaxed_all_inputs_as_internal", get_test_model_true_relaxed_all_inputs_as_internal()); + +} // namespace generated_tests::if_simple_unknown_rank + +namespace generated_tests::if_simple_unknown_rank { + +const TestModel& get_test_model_true_relaxed_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = true, + .main = { + .inputIndexes = {0, 3}, + .operands = {{ // x + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({true}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // z + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // dummy6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param18 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({11.0f, 12.0f, 13.0f, 14.0f, 15.0f, 16.0f, 17.0f, 18.0f, 19.0f, 20.0f, 21.0f, 22.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }, { + .inputs = {4, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {7} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_true_relaxed_all_outputs_as_internal = TestModelManager::get().add("if_simple_unknown_rank_true_relaxed_all_outputs_as_internal", get_test_model_true_relaxed_all_outputs_as_internal()); + +} // namespace generated_tests::if_simple_unknown_rank + +namespace generated_tests::if_simple_unknown_rank { + +const TestModel& get_test_model_true_float16() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {0, 3}, + .operands = {{ // x + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({true}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // z + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({11.0f, 12.0f, 13.0f, 14.0f, 15.0f, 16.0f, 17.0f, 18.0f, 19.0f, 20.0f, 21.0f, 22.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }}, + .outputIndexes = {4} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_true_float16 = TestModelManager::get().add("if_simple_unknown_rank_true_float16", get_test_model_true_float16()); + +} // namespace generated_tests::if_simple_unknown_rank + +namespace generated_tests::if_simple_unknown_rank { + +const TestModel& get_test_model_true_float16_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {0, 5}, + .operands = {{ // x + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({true}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // z + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({11.0f, 12.0f, 13.0f, 14.0f, 15.0f, 16.0f, 17.0f, 18.0f, 19.0f, 20.0f, 21.0f, 22.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // y_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // dummy10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {5, 6, 7}, + .outputs = {3}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }}, + .outputIndexes = {4} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_true_float16_all_inputs_as_internal = TestModelManager::get().add("if_simple_unknown_rank_true_float16_all_inputs_as_internal", get_test_model_true_float16_all_inputs_as_internal()); + +} // namespace generated_tests::if_simple_unknown_rank + +namespace generated_tests::if_simple_unknown_rank { + +const TestModel& get_test_model_true_float16_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {0, 3}, + .operands = {{ // x + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({true}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // z + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // dummy11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({11.0f, 12.0f, 13.0f, 14.0f, 15.0f, 16.0f, 17.0f, 18.0f, 19.0f, 20.0f, 21.0f, 22.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }, { + .inputs = {4, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {7} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_true_float16_all_outputs_as_internal = TestModelManager::get().add("if_simple_unknown_rank_true_float16_all_outputs_as_internal", get_test_model_true_float16_all_outputs_as_internal()); + +} // namespace generated_tests::if_simple_unknown_rank + +namespace generated_tests::if_simple_unknown_rank { + +const TestModel& get_test_model_true_int32() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {0, 3}, + .operands = {{ // x + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({true}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // z + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }}, + .outputIndexes = {4} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({10}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({10}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_true_int32 = TestModelManager::get().add("if_simple_unknown_rank_true_int32", get_test_model_true_int32()); + +} // namespace generated_tests::if_simple_unknown_rank + +namespace generated_tests::if_simple_unknown_rank { + +const TestModel& get_test_model_true_quant8() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {0, 3}, + .operands = {{ // x + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({true}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // z + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }}, + .outputIndexes = {4} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({110}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({110}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_true_quant8 = TestModelManager::get().add("if_simple_unknown_rank_true_quant8", get_test_model_true_quant8()); + +} // namespace generated_tests::if_simple_unknown_rank + +namespace generated_tests::if_simple_unknown_rank { + +const TestModel& get_test_model_true_quant8_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {0, 5}, + .operands = {{ // x + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({true}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // z + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // y_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // dummy15 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({100}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // param27 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {5, 6, 7}, + .outputs = {3}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }}, + .outputIndexes = {4} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({110}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({110}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_true_quant8_all_inputs_as_internal = TestModelManager::get().add("if_simple_unknown_rank_true_quant8_all_inputs_as_internal", get_test_model_true_quant8_all_inputs_as_internal()); + +} // namespace generated_tests::if_simple_unknown_rank + +namespace generated_tests::if_simple_unknown_rank { + +const TestModel& get_test_model_true_quant8_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {0, 3}, + .operands = {{ // x + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({true}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // z + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // dummy16 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({100}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // param28 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }, { + .inputs = {4, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {7} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({110}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({110}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_true_quant8_all_outputs_as_internal = TestModelManager::get().add("if_simple_unknown_rank_true_quant8_all_outputs_as_internal", get_test_model_true_quant8_all_outputs_as_internal()); + +} // namespace generated_tests::if_simple_unknown_rank + +namespace generated_tests::if_simple_unknown_rank { + +const TestModel& get_test_model_true_quant8_signed() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {0, 3}, + .operands = {{ // x + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({true}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // z + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }}, + .outputIndexes = {4} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({110}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({110}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_true_quant8_signed = TestModelManager::get().add("if_simple_unknown_rank_true_quant8_signed", get_test_model_true_quant8_signed()); + +} // namespace generated_tests::if_simple_unknown_rank + +namespace generated_tests::if_simple_unknown_rank { + +const TestModel& get_test_model_true_quant8_signed_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {0, 5}, + .operands = {{ // x + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({true}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // z + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // y_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // dummy20 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({100}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // param32 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {5, 6, 7}, + .outputs = {3}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }}, + .outputIndexes = {4} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({110}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({110}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_true_quant8_signed_all_inputs_as_internal = TestModelManager::get().add("if_simple_unknown_rank_true_quant8_signed_all_inputs_as_internal", get_test_model_true_quant8_signed_all_inputs_as_internal()); + +} // namespace generated_tests::if_simple_unknown_rank + +namespace generated_tests::if_simple_unknown_rank { + +const TestModel& get_test_model_true_quant8_signed_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {0, 3}, + .operands = {{ // x + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({true}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // z + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // dummy21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({100}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // param33 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }, { + .inputs = {4, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {7} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({110}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({110}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_true_quant8_signed_all_outputs_as_internal = TestModelManager::get().add("if_simple_unknown_rank_true_quant8_signed_all_outputs_as_internal", get_test_model_true_quant8_signed_all_outputs_as_internal()); + +} // namespace generated_tests::if_simple_unknown_rank + +namespace generated_tests::if_simple_unknown_rank { + +const TestModel& get_test_model_false() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {0, 3}, + .operands = {{ // x1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({false}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // z3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({-9.0f, -8.0f, -7.0f, -6.0f, -5.0f, -4.0f, -3.0f, -2.0f, -1.0f, 0.0f, 1.0f, 2.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }}, + .outputIndexes = {4} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_false = TestModelManager::get().add("if_simple_unknown_rank_false", get_test_model_false()); + +} // namespace generated_tests::if_simple_unknown_rank + +namespace generated_tests::if_simple_unknown_rank { + +const TestModel& get_test_model_false_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {0, 5}, + .operands = {{ // x1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({false}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // z3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({-9.0f, -8.0f, -7.0f, -6.0f, -5.0f, -4.0f, -3.0f, -2.0f, -1.0f, 0.0f, 1.0f, 2.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // y3_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // dummy25 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param37 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {5, 6, 7}, + .outputs = {3}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }}, + .outputIndexes = {4} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_false_all_inputs_as_internal = TestModelManager::get().add("if_simple_unknown_rank_false_all_inputs_as_internal", get_test_model_false_all_inputs_as_internal()); + +} // namespace generated_tests::if_simple_unknown_rank + +namespace generated_tests::if_simple_unknown_rank { + +const TestModel& get_test_model_false_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {0, 3}, + .operands = {{ // x1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({false}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // z3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // dummy26 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param38 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z3_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({-9.0f, -8.0f, -7.0f, -6.0f, -5.0f, -4.0f, -3.0f, -2.0f, -1.0f, 0.0f, 1.0f, 2.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }, { + .inputs = {4, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {7} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_false_all_outputs_as_internal = TestModelManager::get().add("if_simple_unknown_rank_false_all_outputs_as_internal", get_test_model_false_all_outputs_as_internal()); + +} // namespace generated_tests::if_simple_unknown_rank + +namespace generated_tests::if_simple_unknown_rank { + +const TestModel& get_test_model_false_relaxed() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = true, + .main = { + .inputIndexes = {0, 3}, + .operands = {{ // x1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({false}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // z3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({-9.0f, -8.0f, -7.0f, -6.0f, -5.0f, -4.0f, -3.0f, -2.0f, -1.0f, 0.0f, 1.0f, 2.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }}, + .outputIndexes = {4} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_false_relaxed = TestModelManager::get().add("if_simple_unknown_rank_false_relaxed", get_test_model_false_relaxed()); + +} // namespace generated_tests::if_simple_unknown_rank + +namespace generated_tests::if_simple_unknown_rank { + +const TestModel& get_test_model_false_relaxed_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = true, + .main = { + .inputIndexes = {0, 5}, + .operands = {{ // x1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({false}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // z3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({-9.0f, -8.0f, -7.0f, -6.0f, -5.0f, -4.0f, -3.0f, -2.0f, -1.0f, 0.0f, 1.0f, 2.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // y3_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // dummy30 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param42 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {5, 6, 7}, + .outputs = {3}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }}, + .outputIndexes = {4} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_false_relaxed_all_inputs_as_internal = TestModelManager::get().add("if_simple_unknown_rank_false_relaxed_all_inputs_as_internal", get_test_model_false_relaxed_all_inputs_as_internal()); + +} // namespace generated_tests::if_simple_unknown_rank + +namespace generated_tests::if_simple_unknown_rank { + +const TestModel& get_test_model_false_relaxed_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = true, + .main = { + .inputIndexes = {0, 3}, + .operands = {{ // x1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({false}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // z3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // dummy31 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param43 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z3_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({-9.0f, -8.0f, -7.0f, -6.0f, -5.0f, -4.0f, -3.0f, -2.0f, -1.0f, 0.0f, 1.0f, 2.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }, { + .inputs = {4, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {7} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_false_relaxed_all_outputs_as_internal = TestModelManager::get().add("if_simple_unknown_rank_false_relaxed_all_outputs_as_internal", get_test_model_false_relaxed_all_outputs_as_internal()); + +} // namespace generated_tests::if_simple_unknown_rank + +namespace generated_tests::if_simple_unknown_rank { + +const TestModel& get_test_model_false_float16() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {0, 3}, + .operands = {{ // x1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({false}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // z3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({-9.0f, -8.0f, -7.0f, -6.0f, -5.0f, -4.0f, -3.0f, -2.0f, -1.0f, 0.0f, 1.0f, 2.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }}, + .outputIndexes = {4} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_false_float16 = TestModelManager::get().add("if_simple_unknown_rank_false_float16", get_test_model_false_float16()); + +} // namespace generated_tests::if_simple_unknown_rank + +namespace generated_tests::if_simple_unknown_rank { + +const TestModel& get_test_model_false_float16_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {0, 5}, + .operands = {{ // x1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({false}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // z3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({-9.0f, -8.0f, -7.0f, -6.0f, -5.0f, -4.0f, -3.0f, -2.0f, -1.0f, 0.0f, 1.0f, 2.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // y3_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // dummy35 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param47 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {5, 6, 7}, + .outputs = {3}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }}, + .outputIndexes = {4} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_false_float16_all_inputs_as_internal = TestModelManager::get().add("if_simple_unknown_rank_false_float16_all_inputs_as_internal", get_test_model_false_float16_all_inputs_as_internal()); + +} // namespace generated_tests::if_simple_unknown_rank + +namespace generated_tests::if_simple_unknown_rank { + +const TestModel& get_test_model_false_float16_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {0, 3}, + .operands = {{ // x1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({false}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // z3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // dummy36 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param48 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z3_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({-9.0f, -8.0f, -7.0f, -6.0f, -5.0f, -4.0f, -3.0f, -2.0f, -1.0f, 0.0f, 1.0f, 2.0f}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }, { + .inputs = {4, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {7} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({10.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_false_float16_all_outputs_as_internal = TestModelManager::get().add("if_simple_unknown_rank_false_float16_all_outputs_as_internal", get_test_model_false_float16_all_outputs_as_internal()); + +} // namespace generated_tests::if_simple_unknown_rank + +namespace generated_tests::if_simple_unknown_rank { + +const TestModel& get_test_model_false_int32() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {0, 3}, + .operands = {{ // x1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({false}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // z3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-9, -8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }}, + .outputIndexes = {4} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({10}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({10}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_false_int32 = TestModelManager::get().add("if_simple_unknown_rank_false_int32", get_test_model_false_int32()); + +} // namespace generated_tests::if_simple_unknown_rank + +namespace generated_tests::if_simple_unknown_rank { + +const TestModel& get_test_model_false_quant8() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {0, 3}, + .operands = {{ // x1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({false}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // z3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }}, + .outputIndexes = {4} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({110}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({110}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_false_quant8 = TestModelManager::get().add("if_simple_unknown_rank_false_quant8", get_test_model_false_quant8()); + +} // namespace generated_tests::if_simple_unknown_rank + +namespace generated_tests::if_simple_unknown_rank { + +const TestModel& get_test_model_false_quant8_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {0, 5}, + .operands = {{ // x1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({false}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // z3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // y3_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // dummy40 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({100}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // param52 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {5, 6, 7}, + .outputs = {3}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }}, + .outputIndexes = {4} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({110}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({110}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_false_quant8_all_inputs_as_internal = TestModelManager::get().add("if_simple_unknown_rank_false_quant8_all_inputs_as_internal", get_test_model_false_quant8_all_inputs_as_internal()); + +} // namespace generated_tests::if_simple_unknown_rank + +namespace generated_tests::if_simple_unknown_rank { + +const TestModel& get_test_model_false_quant8_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {0, 3}, + .operands = {{ // x1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({false}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // z3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // dummy41 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({100}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // param53 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z3_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }, { + .inputs = {4, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {7} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({110}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({110}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_false_quant8_all_outputs_as_internal = TestModelManager::get().add("if_simple_unknown_rank_false_quant8_all_outputs_as_internal", get_test_model_false_quant8_all_outputs_as_internal()); + +} // namespace generated_tests::if_simple_unknown_rank + +namespace generated_tests::if_simple_unknown_rank { + +const TestModel& get_test_model_false_quant8_signed() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {0, 3}, + .operands = {{ // x1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({false}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // z3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }}, + .outputIndexes = {4} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({110}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({110}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_false_quant8_signed = TestModelManager::get().add("if_simple_unknown_rank_false_quant8_signed", get_test_model_false_quant8_signed()); + +} // namespace generated_tests::if_simple_unknown_rank + +namespace generated_tests::if_simple_unknown_rank { + +const TestModel& get_test_model_false_quant8_signed_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {0, 5}, + .operands = {{ // x1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({false}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // z3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // y3_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // dummy45 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({100}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // param57 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {5, 6, 7}, + .outputs = {3}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }}, + .outputIndexes = {4} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({110}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({110}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_false_quant8_signed_all_inputs_as_internal = TestModelManager::get().add("if_simple_unknown_rank_false_quant8_signed_all_inputs_as_internal", get_test_model_false_quant8_signed_all_inputs_as_internal()); + +} // namespace generated_tests::if_simple_unknown_rank + +namespace generated_tests::if_simple_unknown_rank { + +const TestModel& get_test_model_false_quant8_signed_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {0, 3}, + .operands = {{ // x1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({false}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // y3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // z3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // dummy46 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({100}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // param58 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z3_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102}), + .dimensions = {3, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3}, + .outputs = {4}, + .type = TestOperationType::IF + }, { + .inputs = {4, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {7} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // param + .inputIndexes = {0}, + .operands = {{ // y4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({110}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3} + }, { // param + .inputIndexes = {0}, + .operands = {{ // y5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({110}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // z5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 100 + }}, + .operations = {{ + .inputs = {0, 1, 2}, + .outputs = {3}, + .type = TestOperationType::SUB + }}, + .outputIndexes = {3} + }} + }; + return model; +} + +const auto dummy_test_model_false_quant8_signed_all_outputs_as_internal = TestModelManager::get().add("if_simple_unknown_rank_false_quant8_signed_all_outputs_as_internal", get_test_model_false_quant8_signed_all_outputs_as_internal()); + +} // namespace generated_tests::if_simple_unknown_rank + diff --git a/nn/runtime/test/generated/spec_V1_3_cts_only/while_fib_unknown_dimension.example.cpp b/nn/runtime/test/generated/spec_V1_3_cts_only/while_fib_unknown_dimension.example.cpp new file mode 100644 index 000000000..df943e5b7 --- /dev/null +++ b/nn/runtime/test/generated/spec_V1_3_cts_only/while_fib_unknown_dimension.example.cpp @@ -0,0 +1,38806 @@ +// Generated from while_fib_unknown_dimension.mod.py +// DO NOT EDIT +// clang-format off +#include "TestHarness.h" +using namespace test_helper; + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_2_unused_output() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_2_unused_output = TestModelManager::get().add("while_fib_unknown_dimension_n_2_unused_output", get_test_model_n_2_unused_output()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_2_unused_output_all_tensors_as_inputs() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {2, 4}, + .operands = {{ // cond + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_2_unused_output_all_tensors_as_inputs = TestModelManager::get().add("while_fib_unknown_dimension_n_2_unused_output_all_tensors_as_inputs", get_test_model_n_2_unused_output_all_tensors_as_inputs()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_2_unused_output_all_tensors_as_inputs_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4, 7}, + .operands = {{ // cond + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_init_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // dummy + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param45 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {7, 8, 9}, + .outputs = {2}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_2_unused_output_all_tensors_as_inputs_all_inputs_as_internal = TestModelManager::get().add("while_fib_unknown_dimension_n_2_unused_output_all_tensors_as_inputs_all_inputs_as_internal", get_test_model_n_2_unused_output_all_tensors_as_inputs_all_inputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_2_unused_output_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // dummy1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param46 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // fib_out_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }, { + .inputs = {5, 7, 8}, + .outputs = {9}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {9} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_2_unused_output_all_outputs_as_internal = TestModelManager::get().add("while_fib_unknown_dimension_n_2_unused_output_all_outputs_as_internal", get_test_model_n_2_unused_output_all_outputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_2_unused_output_relaxed() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = true, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_2_unused_output_relaxed = TestModelManager::get().add("while_fib_unknown_dimension_n_2_unused_output_relaxed", get_test_model_n_2_unused_output_relaxed()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_2_unused_output_relaxed_all_tensors_as_inputs() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = true, + .main = { + .inputIndexes = {2, 4}, + .operands = {{ // cond + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_2_unused_output_relaxed_all_tensors_as_inputs = TestModelManager::get().add("while_fib_unknown_dimension_n_2_unused_output_relaxed_all_tensors_as_inputs", get_test_model_n_2_unused_output_relaxed_all_tensors_as_inputs()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_2_unused_output_relaxed_all_tensors_as_inputs_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = true, + .main = { + .inputIndexes = {4, 7}, + .operands = {{ // cond + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_init_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // dummy5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param50 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {7, 8, 9}, + .outputs = {2}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_2_unused_output_relaxed_all_tensors_as_inputs_all_inputs_as_internal = TestModelManager::get().add("while_fib_unknown_dimension_n_2_unused_output_relaxed_all_tensors_as_inputs_all_inputs_as_internal", get_test_model_n_2_unused_output_relaxed_all_tensors_as_inputs_all_inputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_2_unused_output_relaxed_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = true, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // dummy6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param51 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // fib_out_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }, { + .inputs = {5, 7, 8}, + .outputs = {9}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {9} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_2_unused_output_relaxed_all_outputs_as_internal = TestModelManager::get().add("while_fib_unknown_dimension_n_2_unused_output_relaxed_all_outputs_as_internal", get_test_model_n_2_unused_output_relaxed_all_outputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_2_unused_output_float16() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // matrix + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // zero_bias + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_2_unused_output_float16 = TestModelManager::get().add("while_fib_unknown_dimension_n_2_unused_output_float16", get_test_model_n_2_unused_output_float16()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_2_unused_output_float16_all_tensors_as_inputs() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {2, 4}, + .operands = {{ // cond + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // matrix + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // zero_bias + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_2_unused_output_float16_all_tensors_as_inputs = TestModelManager::get().add("while_fib_unknown_dimension_n_2_unused_output_float16_all_tensors_as_inputs", get_test_model_n_2_unused_output_float16_all_tensors_as_inputs()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_2_unused_output_float16_all_tensors_as_inputs_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4, 7}, + .operands = {{ // cond + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_init_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // dummy10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param55 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {7, 8, 9}, + .outputs = {2}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // matrix + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // zero_bias + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_2_unused_output_float16_all_tensors_as_inputs_all_inputs_as_internal = TestModelManager::get().add("while_fib_unknown_dimension_n_2_unused_output_float16_all_tensors_as_inputs_all_inputs_as_internal", get_test_model_n_2_unused_output_float16_all_tensors_as_inputs_all_inputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_2_unused_output_float16_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // dummy11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param56 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // fib_out_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }, { + .inputs = {5, 7, 8}, + .outputs = {9}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {9} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // matrix + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // zero_bias + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_2_unused_output_float16_all_outputs_as_internal = TestModelManager::get().add("while_fib_unknown_dimension_n_2_unused_output_float16_all_outputs_as_internal", get_test_model_n_2_unused_output_float16_all_outputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_2_unused_output_quant8() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // matrix + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // zero_bias + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_2_unused_output_quant8 = TestModelManager::get().add("while_fib_unknown_dimension_n_2_unused_output_quant8", get_test_model_n_2_unused_output_quant8()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_2_unused_output_quant8_all_tensors_as_inputs() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {2, 4}, + .operands = {{ // cond + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // matrix + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // zero_bias + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_2_unused_output_quant8_all_tensors_as_inputs = TestModelManager::get().add("while_fib_unknown_dimension_n_2_unused_output_quant8_all_tensors_as_inputs", get_test_model_n_2_unused_output_quant8_all_tensors_as_inputs()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_2_unused_output_quant8_all_tensors_as_inputs_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4, 7}, + .operands = {{ // cond + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_init_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // dummy15 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param60 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {7, 8, 9}, + .outputs = {2}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // matrix + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // zero_bias + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_2_unused_output_quant8_all_tensors_as_inputs_all_inputs_as_internal = TestModelManager::get().add("while_fib_unknown_dimension_n_2_unused_output_quant8_all_tensors_as_inputs_all_inputs_as_internal", get_test_model_n_2_unused_output_quant8_all_tensors_as_inputs_all_inputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_2_unused_output_quant8_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // dummy16 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param61 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // fib_out_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }, { + .inputs = {5, 7, 8}, + .outputs = {9}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {9} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // matrix + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // zero_bias + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_2_unused_output_quant8_all_outputs_as_internal = TestModelManager::get().add("while_fib_unknown_dimension_n_2_unused_output_quant8_all_outputs_as_internal", get_test_model_n_2_unused_output_quant8_all_outputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_2_unused_output_quant8_signed() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // matrix + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // zero_bias + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_2_unused_output_quant8_signed = TestModelManager::get().add("while_fib_unknown_dimension_n_2_unused_output_quant8_signed", get_test_model_n_2_unused_output_quant8_signed()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_2_unused_output_quant8_signed_all_tensors_as_inputs() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {2, 4}, + .operands = {{ // cond + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // matrix + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // zero_bias + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_2_unused_output_quant8_signed_all_tensors_as_inputs = TestModelManager::get().add("while_fib_unknown_dimension_n_2_unused_output_quant8_signed_all_tensors_as_inputs", get_test_model_n_2_unused_output_quant8_signed_all_tensors_as_inputs()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_2_unused_output_quant8_signed_all_tensors_as_inputs_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4, 7}, + .operands = {{ // cond + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_init_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // dummy20 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param65 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {7, 8, 9}, + .outputs = {2}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // matrix + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // zero_bias + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_2_unused_output_quant8_signed_all_tensors_as_inputs_all_inputs_as_internal = TestModelManager::get().add("while_fib_unknown_dimension_n_2_unused_output_quant8_signed_all_tensors_as_inputs_all_inputs_as_internal", get_test_model_n_2_unused_output_quant8_signed_all_tensors_as_inputs_all_inputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_2_unused_output_quant8_signed_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // dummy21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param66 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // fib_out_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }, { + .inputs = {5, 7, 8}, + .outputs = {9}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {9} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // matrix + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // zero_bias + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_2_unused_output_quant8_signed_all_outputs_as_internal = TestModelManager::get().add("while_fib_unknown_dimension_n_2_unused_output_quant8_signed_all_outputs_as_internal", get_test_model_n_2_unused_output_quant8_signed_all_outputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_3_unused_output() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param17 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({3}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f}), + .dimensions = {1, 3}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param15 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param16 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_3_unused_output = TestModelManager::get().add("while_fib_unknown_dimension_n_3_unused_output", get_test_model_n_3_unused_output()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_3_unused_output_all_tensors_as_inputs() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {2, 4}, + .operands = {{ // cond1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param17 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({3}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f}), + .dimensions = {1, 3}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param15 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param16 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_3_unused_output_all_tensors_as_inputs = TestModelManager::get().add("while_fib_unknown_dimension_n_3_unused_output_all_tensors_as_inputs", get_test_model_n_3_unused_output_all_tensors_as_inputs()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_3_unused_output_all_tensors_as_inputs_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4, 7}, + .operands = {{ // cond1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param17 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({3}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f}), + .dimensions = {1, 3}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_init1_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // dummy25 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param70 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {7, 8, 9}, + .outputs = {2}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param15 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param16 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_3_unused_output_all_tensors_as_inputs_all_inputs_as_internal = TestModelManager::get().add("while_fib_unknown_dimension_n_3_unused_output_all_tensors_as_inputs_all_inputs_as_internal", get_test_model_n_3_unused_output_all_tensors_as_inputs_all_inputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_3_unused_output_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param17 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({3}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 3}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // dummy26 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param71 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // fib_out2_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f}), + .dimensions = {1, 3}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }, { + .inputs = {5, 7, 8}, + .outputs = {9}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {9} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param15 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param16 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_3_unused_output_all_outputs_as_internal = TestModelManager::get().add("while_fib_unknown_dimension_n_3_unused_output_all_outputs_as_internal", get_test_model_n_3_unused_output_all_outputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_3_unused_output_relaxed() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = true, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param17 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({3}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f}), + .dimensions = {1, 3}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param15 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param16 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_3_unused_output_relaxed = TestModelManager::get().add("while_fib_unknown_dimension_n_3_unused_output_relaxed", get_test_model_n_3_unused_output_relaxed()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_3_unused_output_relaxed_all_tensors_as_inputs() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = true, + .main = { + .inputIndexes = {2, 4}, + .operands = {{ // cond1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param17 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({3}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f}), + .dimensions = {1, 3}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param15 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param16 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_3_unused_output_relaxed_all_tensors_as_inputs = TestModelManager::get().add("while_fib_unknown_dimension_n_3_unused_output_relaxed_all_tensors_as_inputs", get_test_model_n_3_unused_output_relaxed_all_tensors_as_inputs()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_3_unused_output_relaxed_all_tensors_as_inputs_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = true, + .main = { + .inputIndexes = {4, 7}, + .operands = {{ // cond1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param17 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({3}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f}), + .dimensions = {1, 3}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_init1_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // dummy30 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param75 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {7, 8, 9}, + .outputs = {2}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param15 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param16 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_3_unused_output_relaxed_all_tensors_as_inputs_all_inputs_as_internal = TestModelManager::get().add("while_fib_unknown_dimension_n_3_unused_output_relaxed_all_tensors_as_inputs_all_inputs_as_internal", get_test_model_n_3_unused_output_relaxed_all_tensors_as_inputs_all_inputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_3_unused_output_relaxed_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = true, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param17 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({3}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 3}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // dummy31 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param76 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // fib_out2_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f}), + .dimensions = {1, 3}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }, { + .inputs = {5, 7, 8}, + .outputs = {9}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {9} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param15 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param16 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_3_unused_output_relaxed_all_outputs_as_internal = TestModelManager::get().add("while_fib_unknown_dimension_n_3_unused_output_relaxed_all_outputs_as_internal", get_test_model_n_3_unused_output_relaxed_all_outputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_3_unused_output_float16() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param17 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({3}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f, 2.0f}), + .dimensions = {1, 3}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // matrix1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // zero_bias1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param15 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param16 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_3_unused_output_float16 = TestModelManager::get().add("while_fib_unknown_dimension_n_3_unused_output_float16", get_test_model_n_3_unused_output_float16()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_3_unused_output_float16_all_tensors_as_inputs() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {2, 4}, + .operands = {{ // cond1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param17 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({3}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f, 2.0f}), + .dimensions = {1, 3}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // matrix1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // zero_bias1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param15 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param16 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_3_unused_output_float16_all_tensors_as_inputs = TestModelManager::get().add("while_fib_unknown_dimension_n_3_unused_output_float16_all_tensors_as_inputs", get_test_model_n_3_unused_output_float16_all_tensors_as_inputs()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_3_unused_output_float16_all_tensors_as_inputs_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4, 7}, + .operands = {{ // cond1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param17 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({3}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f, 2.0f}), + .dimensions = {1, 3}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_init1_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // dummy35 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param80 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {7, 8, 9}, + .outputs = {2}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // matrix1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // zero_bias1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param15 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param16 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_3_unused_output_float16_all_tensors_as_inputs_all_inputs_as_internal = TestModelManager::get().add("while_fib_unknown_dimension_n_3_unused_output_float16_all_tensors_as_inputs_all_inputs_as_internal", get_test_model_n_3_unused_output_float16_all_tensors_as_inputs_all_inputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_3_unused_output_float16_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param17 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({3}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 3}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // dummy36 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param81 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // fib_out2_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f, 2.0f}), + .dimensions = {1, 3}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }, { + .inputs = {5, 7, 8}, + .outputs = {9}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {9} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // matrix1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // zero_bias1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param15 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param16 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_3_unused_output_float16_all_outputs_as_internal = TestModelManager::get().add("while_fib_unknown_dimension_n_3_unused_output_float16_all_outputs_as_internal", get_test_model_n_3_unused_output_float16_all_outputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_3_unused_output_quant8() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param17 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({3}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1, 2}), + .dimensions = {1, 3}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // matrix1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // zero_bias1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param15 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param16 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_3_unused_output_quant8 = TestModelManager::get().add("while_fib_unknown_dimension_n_3_unused_output_quant8", get_test_model_n_3_unused_output_quant8()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_3_unused_output_quant8_all_tensors_as_inputs() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {2, 4}, + .operands = {{ // cond1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param17 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({3}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1, 2}), + .dimensions = {1, 3}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // matrix1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // zero_bias1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param15 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param16 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_3_unused_output_quant8_all_tensors_as_inputs = TestModelManager::get().add("while_fib_unknown_dimension_n_3_unused_output_quant8_all_tensors_as_inputs", get_test_model_n_3_unused_output_quant8_all_tensors_as_inputs()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_3_unused_output_quant8_all_tensors_as_inputs_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4, 7}, + .operands = {{ // cond1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param17 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({3}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1, 2}), + .dimensions = {1, 3}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_init1_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // dummy40 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param85 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {7, 8, 9}, + .outputs = {2}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // matrix1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // zero_bias1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param15 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param16 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_3_unused_output_quant8_all_tensors_as_inputs_all_inputs_as_internal = TestModelManager::get().add("while_fib_unknown_dimension_n_3_unused_output_quant8_all_tensors_as_inputs_all_inputs_as_internal", get_test_model_n_3_unused_output_quant8_all_tensors_as_inputs_all_inputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_3_unused_output_quant8_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param17 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({3}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 3}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // dummy41 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param86 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // fib_out2_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1, 2}), + .dimensions = {1, 3}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }, { + .inputs = {5, 7, 8}, + .outputs = {9}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {9} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // matrix1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // zero_bias1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param15 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param16 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_3_unused_output_quant8_all_outputs_as_internal = TestModelManager::get().add("while_fib_unknown_dimension_n_3_unused_output_quant8_all_outputs_as_internal", get_test_model_n_3_unused_output_quant8_all_outputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_3_unused_output_quant8_signed() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param17 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({3}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1, 2}), + .dimensions = {1, 3}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // matrix1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // zero_bias1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param15 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param16 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_3_unused_output_quant8_signed = TestModelManager::get().add("while_fib_unknown_dimension_n_3_unused_output_quant8_signed", get_test_model_n_3_unused_output_quant8_signed()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_3_unused_output_quant8_signed_all_tensors_as_inputs() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {2, 4}, + .operands = {{ // cond1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param17 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({3}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1, 2}), + .dimensions = {1, 3}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // matrix1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // zero_bias1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param15 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param16 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_3_unused_output_quant8_signed_all_tensors_as_inputs = TestModelManager::get().add("while_fib_unknown_dimension_n_3_unused_output_quant8_signed_all_tensors_as_inputs", get_test_model_n_3_unused_output_quant8_signed_all_tensors_as_inputs()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_3_unused_output_quant8_signed_all_tensors_as_inputs_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4, 7}, + .operands = {{ // cond1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param17 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({3}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1, 2}), + .dimensions = {1, 3}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_init1_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // dummy45 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param90 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {7, 8, 9}, + .outputs = {2}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // matrix1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // zero_bias1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param15 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param16 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_3_unused_output_quant8_signed_all_tensors_as_inputs_all_inputs_as_internal = TestModelManager::get().add("while_fib_unknown_dimension_n_3_unused_output_quant8_signed_all_tensors_as_inputs_all_inputs_as_internal", get_test_model_n_3_unused_output_quant8_signed_all_tensors_as_inputs_all_inputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_3_unused_output_quant8_signed_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param17 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({3}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 3}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // dummy46 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param91 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // fib_out2_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1, 2}), + .dimensions = {1, 3}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }, { + .inputs = {5, 7, 8}, + .outputs = {9}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {9} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // matrix1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // zero_bias1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param15 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param16 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_3_unused_output_quant8_signed_all_outputs_as_internal = TestModelManager::get().add("while_fib_unknown_dimension_n_3_unused_output_quant8_signed_all_outputs_as_internal", get_test_model_n_3_unused_output_quant8_signed_all_outputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_4_unused_output() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param26 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({4}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f, 3.0f}), + .dimensions = {1, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param18 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param19 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param20 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param25 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_4_unused_output = TestModelManager::get().add("while_fib_unknown_dimension_n_4_unused_output", get_test_model_n_4_unused_output()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_4_unused_output_all_tensors_as_inputs() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {2, 4}, + .operands = {{ // cond2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param26 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({4}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f, 3.0f}), + .dimensions = {1, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param18 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param19 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param20 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param25 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_4_unused_output_all_tensors_as_inputs = TestModelManager::get().add("while_fib_unknown_dimension_n_4_unused_output_all_tensors_as_inputs", get_test_model_n_4_unused_output_all_tensors_as_inputs()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_4_unused_output_all_tensors_as_inputs_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4, 7}, + .operands = {{ // cond2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param26 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({4}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f, 3.0f}), + .dimensions = {1, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_init2_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // dummy50 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param95 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {7, 8, 9}, + .outputs = {2}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param18 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param19 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param20 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param25 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_4_unused_output_all_tensors_as_inputs_all_inputs_as_internal = TestModelManager::get().add("while_fib_unknown_dimension_n_4_unused_output_all_tensors_as_inputs_all_inputs_as_internal", get_test_model_n_4_unused_output_all_tensors_as_inputs_all_inputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_4_unused_output_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param26 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({4}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // dummy51 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param96 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // fib_out4_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f, 3.0f}), + .dimensions = {1, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }, { + .inputs = {5, 7, 8}, + .outputs = {9}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {9} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param18 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param19 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param20 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param25 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_4_unused_output_all_outputs_as_internal = TestModelManager::get().add("while_fib_unknown_dimension_n_4_unused_output_all_outputs_as_internal", get_test_model_n_4_unused_output_all_outputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_4_unused_output_relaxed() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = true, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param26 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({4}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f, 3.0f}), + .dimensions = {1, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param18 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param19 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param20 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param25 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_4_unused_output_relaxed = TestModelManager::get().add("while_fib_unknown_dimension_n_4_unused_output_relaxed", get_test_model_n_4_unused_output_relaxed()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_4_unused_output_relaxed_all_tensors_as_inputs() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = true, + .main = { + .inputIndexes = {2, 4}, + .operands = {{ // cond2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param26 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({4}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f, 3.0f}), + .dimensions = {1, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param18 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param19 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param20 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param25 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_4_unused_output_relaxed_all_tensors_as_inputs = TestModelManager::get().add("while_fib_unknown_dimension_n_4_unused_output_relaxed_all_tensors_as_inputs", get_test_model_n_4_unused_output_relaxed_all_tensors_as_inputs()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_4_unused_output_relaxed_all_tensors_as_inputs_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = true, + .main = { + .inputIndexes = {4, 7}, + .operands = {{ // cond2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param26 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({4}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f, 3.0f}), + .dimensions = {1, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_init2_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // dummy55 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param100 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {7, 8, 9}, + .outputs = {2}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param18 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param19 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param20 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param25 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_4_unused_output_relaxed_all_tensors_as_inputs_all_inputs_as_internal = TestModelManager::get().add("while_fib_unknown_dimension_n_4_unused_output_relaxed_all_tensors_as_inputs_all_inputs_as_internal", get_test_model_n_4_unused_output_relaxed_all_tensors_as_inputs_all_inputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_4_unused_output_relaxed_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = true, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param26 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({4}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // dummy56 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param101 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // fib_out4_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f, 3.0f}), + .dimensions = {1, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }, { + .inputs = {5, 7, 8}, + .outputs = {9}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {9} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param18 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param19 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param20 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param25 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_4_unused_output_relaxed_all_outputs_as_internal = TestModelManager::get().add("while_fib_unknown_dimension_n_4_unused_output_relaxed_all_outputs_as_internal", get_test_model_n_4_unused_output_relaxed_all_outputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_4_unused_output_float16() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param26 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({4}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f, 2.0f, 3.0f}), + .dimensions = {1, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param18 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param19 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param20 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // matrix2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // zero_bias2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param25 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_4_unused_output_float16 = TestModelManager::get().add("while_fib_unknown_dimension_n_4_unused_output_float16", get_test_model_n_4_unused_output_float16()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_4_unused_output_float16_all_tensors_as_inputs() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {2, 4}, + .operands = {{ // cond2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param26 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({4}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f, 2.0f, 3.0f}), + .dimensions = {1, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param18 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param19 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param20 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // matrix2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // zero_bias2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param25 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_4_unused_output_float16_all_tensors_as_inputs = TestModelManager::get().add("while_fib_unknown_dimension_n_4_unused_output_float16_all_tensors_as_inputs", get_test_model_n_4_unused_output_float16_all_tensors_as_inputs()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_4_unused_output_float16_all_tensors_as_inputs_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4, 7}, + .operands = {{ // cond2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param26 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({4}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f, 2.0f, 3.0f}), + .dimensions = {1, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_init2_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // dummy60 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param105 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {7, 8, 9}, + .outputs = {2}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param18 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param19 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param20 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // matrix2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // zero_bias2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param25 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_4_unused_output_float16_all_tensors_as_inputs_all_inputs_as_internal = TestModelManager::get().add("while_fib_unknown_dimension_n_4_unused_output_float16_all_tensors_as_inputs_all_inputs_as_internal", get_test_model_n_4_unused_output_float16_all_tensors_as_inputs_all_inputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_4_unused_output_float16_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param26 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({4}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // dummy61 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param106 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // fib_out4_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f, 2.0f, 3.0f}), + .dimensions = {1, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }, { + .inputs = {5, 7, 8}, + .outputs = {9}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {9} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param18 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param19 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param20 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // matrix2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // zero_bias2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param25 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_4_unused_output_float16_all_outputs_as_internal = TestModelManager::get().add("while_fib_unknown_dimension_n_4_unused_output_float16_all_outputs_as_internal", get_test_model_n_4_unused_output_float16_all_outputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_4_unused_output_quant8() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param26 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({4}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1, 2, 3}), + .dimensions = {1, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param18 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param19 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param20 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // matrix2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // zero_bias2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param25 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_4_unused_output_quant8 = TestModelManager::get().add("while_fib_unknown_dimension_n_4_unused_output_quant8", get_test_model_n_4_unused_output_quant8()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_4_unused_output_quant8_all_tensors_as_inputs() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {2, 4}, + .operands = {{ // cond2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param26 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({4}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1, 2, 3}), + .dimensions = {1, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param18 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param19 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param20 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // matrix2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // zero_bias2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param25 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_4_unused_output_quant8_all_tensors_as_inputs = TestModelManager::get().add("while_fib_unknown_dimension_n_4_unused_output_quant8_all_tensors_as_inputs", get_test_model_n_4_unused_output_quant8_all_tensors_as_inputs()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_4_unused_output_quant8_all_tensors_as_inputs_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4, 7}, + .operands = {{ // cond2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param26 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({4}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1, 2, 3}), + .dimensions = {1, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_init2_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // dummy65 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param110 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {7, 8, 9}, + .outputs = {2}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param18 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param19 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param20 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // matrix2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // zero_bias2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param25 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_4_unused_output_quant8_all_tensors_as_inputs_all_inputs_as_internal = TestModelManager::get().add("while_fib_unknown_dimension_n_4_unused_output_quant8_all_tensors_as_inputs_all_inputs_as_internal", get_test_model_n_4_unused_output_quant8_all_tensors_as_inputs_all_inputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_4_unused_output_quant8_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param26 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({4}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // dummy66 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param111 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // fib_out4_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1, 2, 3}), + .dimensions = {1, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }, { + .inputs = {5, 7, 8}, + .outputs = {9}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {9} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param18 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param19 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param20 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // matrix2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // zero_bias2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param25 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_4_unused_output_quant8_all_outputs_as_internal = TestModelManager::get().add("while_fib_unknown_dimension_n_4_unused_output_quant8_all_outputs_as_internal", get_test_model_n_4_unused_output_quant8_all_outputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_4_unused_output_quant8_signed() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param26 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({4}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1, 2, 3}), + .dimensions = {1, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param18 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param19 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param20 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // matrix2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // zero_bias2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param25 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_4_unused_output_quant8_signed = TestModelManager::get().add("while_fib_unknown_dimension_n_4_unused_output_quant8_signed", get_test_model_n_4_unused_output_quant8_signed()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_4_unused_output_quant8_signed_all_tensors_as_inputs() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {2, 4}, + .operands = {{ // cond2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param26 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({4}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1, 2, 3}), + .dimensions = {1, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param18 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param19 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param20 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // matrix2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // zero_bias2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param25 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_4_unused_output_quant8_signed_all_tensors_as_inputs = TestModelManager::get().add("while_fib_unknown_dimension_n_4_unused_output_quant8_signed_all_tensors_as_inputs", get_test_model_n_4_unused_output_quant8_signed_all_tensors_as_inputs()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_4_unused_output_quant8_signed_all_tensors_as_inputs_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4, 7}, + .operands = {{ // cond2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param26 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({4}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1, 2, 3}), + .dimensions = {1, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_init2_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // dummy70 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param115 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {7, 8, 9}, + .outputs = {2}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param18 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param19 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param20 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // matrix2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // zero_bias2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param25 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_4_unused_output_quant8_signed_all_tensors_as_inputs_all_inputs_as_internal = TestModelManager::get().add("while_fib_unknown_dimension_n_4_unused_output_quant8_signed_all_tensors_as_inputs_all_inputs_as_internal", get_test_model_n_4_unused_output_quant8_signed_all_tensors_as_inputs_all_inputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_4_unused_output_quant8_signed_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param26 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({4}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // dummy71 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param116 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // fib_out4_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1, 2, 3}), + .dimensions = {1, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }, { + .inputs = {5, 7, 8}, + .outputs = {9}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {9} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param18 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param19 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param20 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // matrix2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // zero_bias2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param25 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_4_unused_output_quant8_signed_all_outputs_as_internal = TestModelManager::get().add("while_fib_unknown_dimension_n_4_unused_output_quant8_signed_all_outputs_as_internal", get_test_model_n_4_unused_output_quant8_signed_all_outputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_5() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param35 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({5}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f, 3.0f, 5.0f}), + .dimensions = {1, 5}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param27 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param28 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param29 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param30 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param31 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param32 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param33 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param34 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_5 = TestModelManager::get().add("while_fib_unknown_dimension_n_5", get_test_model_n_5()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_5_all_tensors_as_inputs() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {2, 4}, + .operands = {{ // cond3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param35 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({5}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f, 3.0f, 5.0f}), + .dimensions = {1, 5}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param27 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param28 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param29 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param30 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param31 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param32 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param33 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param34 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_5_all_tensors_as_inputs = TestModelManager::get().add("while_fib_unknown_dimension_n_5_all_tensors_as_inputs", get_test_model_n_5_all_tensors_as_inputs()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_5_all_tensors_as_inputs_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4, 6}, + .operands = {{ // cond3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param35 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({5}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f, 3.0f, 5.0f}), + .dimensions = {1, 5}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // fib_init3_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // dummy75 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param120 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {6, 7, 8}, + .outputs = {2}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param27 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param28 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param29 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param30 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param31 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param32 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param33 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param34 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_5_all_tensors_as_inputs_all_inputs_as_internal = TestModelManager::get().add("while_fib_unknown_dimension_n_5_all_tensors_as_inputs_all_inputs_as_internal", get_test_model_n_5_all_tensors_as_inputs_all_inputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_5_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param35 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({5}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 5}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // dummy76 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param121 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // fib_out6_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f, 3.0f, 5.0f}), + .dimensions = {1, 5}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }, { + .inputs = {5, 6, 7}, + .outputs = {8}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {8} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param27 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param28 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param29 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param30 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param31 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param32 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param33 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param34 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_5_all_outputs_as_internal = TestModelManager::get().add("while_fib_unknown_dimension_n_5_all_outputs_as_internal", get_test_model_n_5_all_outputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_5_relaxed() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = true, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param35 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({5}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f, 3.0f, 5.0f}), + .dimensions = {1, 5}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param27 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param28 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param29 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param30 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param31 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param32 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param33 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param34 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_5_relaxed = TestModelManager::get().add("while_fib_unknown_dimension_n_5_relaxed", get_test_model_n_5_relaxed()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_5_relaxed_all_tensors_as_inputs() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = true, + .main = { + .inputIndexes = {2, 4}, + .operands = {{ // cond3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param35 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({5}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f, 3.0f, 5.0f}), + .dimensions = {1, 5}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param27 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param28 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param29 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param30 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param31 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param32 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param33 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param34 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_5_relaxed_all_tensors_as_inputs = TestModelManager::get().add("while_fib_unknown_dimension_n_5_relaxed_all_tensors_as_inputs", get_test_model_n_5_relaxed_all_tensors_as_inputs()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_5_relaxed_all_tensors_as_inputs_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = true, + .main = { + .inputIndexes = {4, 6}, + .operands = {{ // cond3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param35 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({5}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f, 3.0f, 5.0f}), + .dimensions = {1, 5}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // fib_init3_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // dummy80 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param125 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {6, 7, 8}, + .outputs = {2}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param27 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param28 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param29 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param30 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param31 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param32 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param33 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param34 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_5_relaxed_all_tensors_as_inputs_all_inputs_as_internal = TestModelManager::get().add("while_fib_unknown_dimension_n_5_relaxed_all_tensors_as_inputs_all_inputs_as_internal", get_test_model_n_5_relaxed_all_tensors_as_inputs_all_inputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_5_relaxed_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = true, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param35 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({5}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 5}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // dummy81 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param126 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // fib_out6_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f, 3.0f, 5.0f}), + .dimensions = {1, 5}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }, { + .inputs = {5, 6, 7}, + .outputs = {8}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {8} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param27 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param28 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param29 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param30 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param31 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param32 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param33 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param34 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_5_relaxed_all_outputs_as_internal = TestModelManager::get().add("while_fib_unknown_dimension_n_5_relaxed_all_outputs_as_internal", get_test_model_n_5_relaxed_all_outputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_5_float16() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param35 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({5}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f, 2.0f, 3.0f, 5.0f}), + .dimensions = {1, 5}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param27 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param28 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param29 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param30 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // matrix3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // zero_bias3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param31 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param32 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param33 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param34 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_5_float16 = TestModelManager::get().add("while_fib_unknown_dimension_n_5_float16", get_test_model_n_5_float16()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_5_float16_all_tensors_as_inputs() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {2, 4}, + .operands = {{ // cond3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param35 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({5}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f, 2.0f, 3.0f, 5.0f}), + .dimensions = {1, 5}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param27 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param28 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param29 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param30 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // matrix3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // zero_bias3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param31 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param32 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param33 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param34 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_5_float16_all_tensors_as_inputs = TestModelManager::get().add("while_fib_unknown_dimension_n_5_float16_all_tensors_as_inputs", get_test_model_n_5_float16_all_tensors_as_inputs()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_5_float16_all_tensors_as_inputs_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4, 6}, + .operands = {{ // cond3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param35 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({5}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f, 2.0f, 3.0f, 5.0f}), + .dimensions = {1, 5}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // fib_init3_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // dummy85 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param130 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {6, 7, 8}, + .outputs = {2}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param27 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param28 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param29 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param30 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // matrix3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // zero_bias3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param31 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param32 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param33 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param34 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_5_float16_all_tensors_as_inputs_all_inputs_as_internal = TestModelManager::get().add("while_fib_unknown_dimension_n_5_float16_all_tensors_as_inputs_all_inputs_as_internal", get_test_model_n_5_float16_all_tensors_as_inputs_all_inputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_5_float16_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param35 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({5}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 5}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // dummy86 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param131 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // fib_out6_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f, 2.0f, 3.0f, 5.0f}), + .dimensions = {1, 5}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }, { + .inputs = {5, 6, 7}, + .outputs = {8}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {8} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param27 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param28 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param29 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param30 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // matrix3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // zero_bias3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param31 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param32 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param33 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param34 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_5_float16_all_outputs_as_internal = TestModelManager::get().add("while_fib_unknown_dimension_n_5_float16_all_outputs_as_internal", get_test_model_n_5_float16_all_outputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_5_quant8() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param35 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({5}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1, 2, 3, 5}), + .dimensions = {1, 5}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param27 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param28 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param29 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param30 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // matrix3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // zero_bias3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param31 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param32 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param33 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param34 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_5_quant8 = TestModelManager::get().add("while_fib_unknown_dimension_n_5_quant8", get_test_model_n_5_quant8()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_5_quant8_all_tensors_as_inputs() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {2, 4}, + .operands = {{ // cond3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param35 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({5}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1, 2, 3, 5}), + .dimensions = {1, 5}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param27 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param28 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param29 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param30 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // matrix3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // zero_bias3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param31 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param32 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param33 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param34 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_5_quant8_all_tensors_as_inputs = TestModelManager::get().add("while_fib_unknown_dimension_n_5_quant8_all_tensors_as_inputs", get_test_model_n_5_quant8_all_tensors_as_inputs()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_5_quant8_all_tensors_as_inputs_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4, 6}, + .operands = {{ // cond3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param35 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({5}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1, 2, 3, 5}), + .dimensions = {1, 5}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // fib_init3_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // dummy90 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param135 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {6, 7, 8}, + .outputs = {2}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param27 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param28 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param29 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param30 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // matrix3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // zero_bias3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param31 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param32 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param33 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param34 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_5_quant8_all_tensors_as_inputs_all_inputs_as_internal = TestModelManager::get().add("while_fib_unknown_dimension_n_5_quant8_all_tensors_as_inputs_all_inputs_as_internal", get_test_model_n_5_quant8_all_tensors_as_inputs_all_inputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_5_quant8_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param35 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({5}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 5}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // dummy91 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param136 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // fib_out6_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1, 2, 3, 5}), + .dimensions = {1, 5}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }, { + .inputs = {5, 6, 7}, + .outputs = {8}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {8} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param27 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param28 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param29 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param30 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // matrix3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // zero_bias3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param31 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param32 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param33 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param34 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_5_quant8_all_outputs_as_internal = TestModelManager::get().add("while_fib_unknown_dimension_n_5_quant8_all_outputs_as_internal", get_test_model_n_5_quant8_all_outputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_5_quant8_signed() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param35 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({5}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1, 2, 3, 5}), + .dimensions = {1, 5}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param27 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param28 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param29 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param30 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // matrix3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // zero_bias3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param31 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param32 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param33 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param34 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_5_quant8_signed = TestModelManager::get().add("while_fib_unknown_dimension_n_5_quant8_signed", get_test_model_n_5_quant8_signed()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_5_quant8_signed_all_tensors_as_inputs() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {2, 4}, + .operands = {{ // cond3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param35 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({5}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1, 2, 3, 5}), + .dimensions = {1, 5}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param27 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param28 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param29 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param30 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // matrix3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // zero_bias3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param31 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param32 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param33 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param34 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_5_quant8_signed_all_tensors_as_inputs = TestModelManager::get().add("while_fib_unknown_dimension_n_5_quant8_signed_all_tensors_as_inputs", get_test_model_n_5_quant8_signed_all_tensors_as_inputs()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_5_quant8_signed_all_tensors_as_inputs_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4, 6}, + .operands = {{ // cond3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param35 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({5}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1, 2, 3, 5}), + .dimensions = {1, 5}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // fib_init3_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // dummy95 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param140 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {6, 7, 8}, + .outputs = {2}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param27 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param28 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param29 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param30 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // matrix3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // zero_bias3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param31 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param32 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param33 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param34 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_5_quant8_signed_all_tensors_as_inputs_all_inputs_as_internal = TestModelManager::get().add("while_fib_unknown_dimension_n_5_quant8_signed_all_tensors_as_inputs_all_inputs_as_internal", get_test_model_n_5_quant8_signed_all_tensors_as_inputs_all_inputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_5_quant8_signed_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param35 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({5}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 5}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // dummy96 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param141 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // fib_out6_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1, 2, 3, 5}), + .dimensions = {1, 5}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }, { + .inputs = {5, 6, 7}, + .outputs = {8}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {8} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param27 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param28 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param29 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param30 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // matrix3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // zero_bias3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param31 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param32 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param33 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param34 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_5_quant8_signed_all_outputs_as_internal = TestModelManager::get().add("while_fib_unknown_dimension_n_5_quant8_signed_all_outputs_as_internal", get_test_model_n_5_quant8_signed_all_outputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_6() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param44 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({6}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f, 3.0f, 5.0f, 8.0f}), + .dimensions = {1, 6}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param36 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param37 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param38 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param39 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param40 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param41 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param42 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param43 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_6 = TestModelManager::get().add("while_fib_unknown_dimension_n_6", get_test_model_n_6()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_6_all_tensors_as_inputs() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {2, 4}, + .operands = {{ // cond4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param44 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({6}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f, 3.0f, 5.0f, 8.0f}), + .dimensions = {1, 6}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param36 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param37 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param38 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param39 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param40 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param41 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param42 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param43 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_6_all_tensors_as_inputs = TestModelManager::get().add("while_fib_unknown_dimension_n_6_all_tensors_as_inputs", get_test_model_n_6_all_tensors_as_inputs()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_6_all_tensors_as_inputs_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4, 6}, + .operands = {{ // cond4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param44 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({6}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f, 3.0f, 5.0f, 8.0f}), + .dimensions = {1, 6}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // fib_init4_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // dummy100 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param145 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {6, 7, 8}, + .outputs = {2}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param36 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param37 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param38 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param39 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param40 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param41 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param42 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param43 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_6_all_tensors_as_inputs_all_inputs_as_internal = TestModelManager::get().add("while_fib_unknown_dimension_n_6_all_tensors_as_inputs_all_inputs_as_internal", get_test_model_n_6_all_tensors_as_inputs_all_inputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_6_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param44 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({6}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 6}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // dummy101 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param146 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // fib_out8_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f, 3.0f, 5.0f, 8.0f}), + .dimensions = {1, 6}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }, { + .inputs = {5, 6, 7}, + .outputs = {8}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {8} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param36 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param37 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param38 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param39 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param40 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param41 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param42 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param43 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_6_all_outputs_as_internal = TestModelManager::get().add("while_fib_unknown_dimension_n_6_all_outputs_as_internal", get_test_model_n_6_all_outputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_6_relaxed() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = true, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param44 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({6}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f, 3.0f, 5.0f, 8.0f}), + .dimensions = {1, 6}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param36 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param37 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param38 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param39 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param40 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param41 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param42 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param43 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_6_relaxed = TestModelManager::get().add("while_fib_unknown_dimension_n_6_relaxed", get_test_model_n_6_relaxed()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_6_relaxed_all_tensors_as_inputs() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = true, + .main = { + .inputIndexes = {2, 4}, + .operands = {{ // cond4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param44 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({6}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f, 3.0f, 5.0f, 8.0f}), + .dimensions = {1, 6}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param36 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param37 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param38 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param39 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param40 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param41 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param42 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param43 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_6_relaxed_all_tensors_as_inputs = TestModelManager::get().add("while_fib_unknown_dimension_n_6_relaxed_all_tensors_as_inputs", get_test_model_n_6_relaxed_all_tensors_as_inputs()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_6_relaxed_all_tensors_as_inputs_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = true, + .main = { + .inputIndexes = {4, 6}, + .operands = {{ // cond4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param44 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({6}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f, 3.0f, 5.0f, 8.0f}), + .dimensions = {1, 6}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // fib_init4_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // dummy105 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param150 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {6, 7, 8}, + .outputs = {2}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param36 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param37 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param38 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param39 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param40 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param41 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param42 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param43 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_6_relaxed_all_tensors_as_inputs_all_inputs_as_internal = TestModelManager::get().add("while_fib_unknown_dimension_n_6_relaxed_all_tensors_as_inputs_all_inputs_as_internal", get_test_model_n_6_relaxed_all_tensors_as_inputs_all_inputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_6_relaxed_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = true, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param44 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({6}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 6}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // dummy106 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param151 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // fib_out8_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f, 3.0f, 5.0f, 8.0f}), + .dimensions = {1, 6}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }, { + .inputs = {5, 6, 7}, + .outputs = {8}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {8} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param36 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param37 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param38 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param39 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param40 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param41 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param42 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param43 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_6_relaxed_all_outputs_as_internal = TestModelManager::get().add("while_fib_unknown_dimension_n_6_relaxed_all_outputs_as_internal", get_test_model_n_6_relaxed_all_outputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_6_float16() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param44 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({6}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f, 2.0f, 3.0f, 5.0f, 8.0f}), + .dimensions = {1, 6}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param36 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param37 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param38 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param39 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // matrix4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // zero_bias4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param40 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param41 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param42 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param43 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_6_float16 = TestModelManager::get().add("while_fib_unknown_dimension_n_6_float16", get_test_model_n_6_float16()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_6_float16_all_tensors_as_inputs() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {2, 4}, + .operands = {{ // cond4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param44 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({6}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f, 2.0f, 3.0f, 5.0f, 8.0f}), + .dimensions = {1, 6}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param36 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param37 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param38 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param39 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // matrix4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // zero_bias4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param40 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param41 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param42 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param43 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_6_float16_all_tensors_as_inputs = TestModelManager::get().add("while_fib_unknown_dimension_n_6_float16_all_tensors_as_inputs", get_test_model_n_6_float16_all_tensors_as_inputs()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_6_float16_all_tensors_as_inputs_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4, 6}, + .operands = {{ // cond4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param44 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({6}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f, 2.0f, 3.0f, 5.0f, 8.0f}), + .dimensions = {1, 6}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // fib_init4_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // dummy110 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param155 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {6, 7, 8}, + .outputs = {2}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param36 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param37 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param38 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param39 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // matrix4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // zero_bias4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param40 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param41 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param42 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param43 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_6_float16_all_tensors_as_inputs_all_inputs_as_internal = TestModelManager::get().add("while_fib_unknown_dimension_n_6_float16_all_tensors_as_inputs_all_inputs_as_internal", get_test_model_n_6_float16_all_tensors_as_inputs_all_inputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_6_float16_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param44 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({6}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 6}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // dummy111 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param156 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // fib_out8_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f, 2.0f, 3.0f, 5.0f, 8.0f}), + .dimensions = {1, 6}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }, { + .inputs = {5, 6, 7}, + .outputs = {8}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {8} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param36 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param37 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param38 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param39 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // matrix4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // zero_bias4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param40 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param41 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param42 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param43 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_6_float16_all_outputs_as_internal = TestModelManager::get().add("while_fib_unknown_dimension_n_6_float16_all_outputs_as_internal", get_test_model_n_6_float16_all_outputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_6_quant8() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param44 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({6}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1, 2, 3, 5, 8}), + .dimensions = {1, 6}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param36 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param37 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param38 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param39 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // matrix4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // zero_bias4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param40 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param41 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param42 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param43 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_6_quant8 = TestModelManager::get().add("while_fib_unknown_dimension_n_6_quant8", get_test_model_n_6_quant8()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_6_quant8_all_tensors_as_inputs() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {2, 4}, + .operands = {{ // cond4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param44 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({6}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1, 2, 3, 5, 8}), + .dimensions = {1, 6}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param36 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param37 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param38 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param39 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // matrix4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // zero_bias4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param40 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param41 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param42 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param43 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_6_quant8_all_tensors_as_inputs = TestModelManager::get().add("while_fib_unknown_dimension_n_6_quant8_all_tensors_as_inputs", get_test_model_n_6_quant8_all_tensors_as_inputs()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_6_quant8_all_tensors_as_inputs_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4, 6}, + .operands = {{ // cond4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param44 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({6}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1, 2, 3, 5, 8}), + .dimensions = {1, 6}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // fib_init4_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // dummy115 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param160 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {6, 7, 8}, + .outputs = {2}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param36 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param37 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param38 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param39 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // matrix4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // zero_bias4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param40 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param41 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param42 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param43 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_6_quant8_all_tensors_as_inputs_all_inputs_as_internal = TestModelManager::get().add("while_fib_unknown_dimension_n_6_quant8_all_tensors_as_inputs_all_inputs_as_internal", get_test_model_n_6_quant8_all_tensors_as_inputs_all_inputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_6_quant8_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param44 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({6}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 6}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // dummy116 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param161 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // fib_out8_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1, 2, 3, 5, 8}), + .dimensions = {1, 6}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }, { + .inputs = {5, 6, 7}, + .outputs = {8}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {8} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param36 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param37 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param38 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param39 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // matrix4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // zero_bias4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param40 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param41 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param42 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param43 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_6_quant8_all_outputs_as_internal = TestModelManager::get().add("while_fib_unknown_dimension_n_6_quant8_all_outputs_as_internal", get_test_model_n_6_quant8_all_outputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_6_quant8_signed() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param44 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({6}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1, 2, 3, 5, 8}), + .dimensions = {1, 6}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param36 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param37 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param38 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param39 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // matrix4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // zero_bias4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param40 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param41 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param42 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param43 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_6_quant8_signed = TestModelManager::get().add("while_fib_unknown_dimension_n_6_quant8_signed", get_test_model_n_6_quant8_signed()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_6_quant8_signed_all_tensors_as_inputs() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {2, 4}, + .operands = {{ // cond4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param44 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({6}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1, 2, 3, 5, 8}), + .dimensions = {1, 6}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param36 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param37 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param38 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param39 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // matrix4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // zero_bias4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param40 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param41 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param42 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param43 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_6_quant8_signed_all_tensors_as_inputs = TestModelManager::get().add("while_fib_unknown_dimension_n_6_quant8_signed_all_tensors_as_inputs", get_test_model_n_6_quant8_signed_all_tensors_as_inputs()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_6_quant8_signed_all_tensors_as_inputs_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4, 6}, + .operands = {{ // cond4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param44 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({6}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1, 2, 3, 5, 8}), + .dimensions = {1, 6}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // fib_init4_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // dummy120 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param165 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {6, 7, 8}, + .outputs = {2}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param36 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param37 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param38 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param39 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // matrix4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // zero_bias4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param40 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param41 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param42 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param43 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_6_quant8_signed_all_tensors_as_inputs_all_inputs_as_internal = TestModelManager::get().add("while_fib_unknown_dimension_n_6_quant8_signed_all_tensors_as_inputs_all_inputs_as_internal", get_test_model_n_6_quant8_signed_all_tensors_as_inputs_all_inputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_dimension + +namespace generated_tests::while_fib_unknown_dimension { + +const TestModel& get_test_model_n_6_quant8_signed_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param44 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({6}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 6}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // dummy121 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param166 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // fib_out8_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1, 2, 3, 5, 8}), + .dimensions = {1, 6}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }, { + .inputs = {5, 6, 7}, + .outputs = {8}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {8} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 0}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param36 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param37 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param38 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param39 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // matrix4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // zero_bias4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param40 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param41 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param42 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param43 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_6_quant8_signed_all_outputs_as_internal = TestModelManager::get().add("while_fib_unknown_dimension_n_6_quant8_signed_all_outputs_as_internal", get_test_model_n_6_quant8_signed_all_outputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_dimension + diff --git a/nn/runtime/test/generated/spec_V1_3_cts_only/while_fib_unknown_rank.example.cpp b/nn/runtime/test/generated/spec_V1_3_cts_only/while_fib_unknown_rank.example.cpp new file mode 100644 index 000000000..e8497bc8e --- /dev/null +++ b/nn/runtime/test/generated/spec_V1_3_cts_only/while_fib_unknown_rank.example.cpp @@ -0,0 +1,38806 @@ +// Generated from while_fib_unknown_rank.mod.py +// DO NOT EDIT +// clang-format off +#include "TestHarness.h" +using namespace test_helper; + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_2_unused_output() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_2_unused_output = TestModelManager::get().add("while_fib_unknown_rank_n_2_unused_output", get_test_model_n_2_unused_output()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_2_unused_output_all_tensors_as_inputs() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {2, 4}, + .operands = {{ // cond + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_2_unused_output_all_tensors_as_inputs = TestModelManager::get().add("while_fib_unknown_rank_n_2_unused_output_all_tensors_as_inputs", get_test_model_n_2_unused_output_all_tensors_as_inputs()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_2_unused_output_all_tensors_as_inputs_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4, 7}, + .operands = {{ // cond + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_init_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // dummy + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param45 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {7, 8, 9}, + .outputs = {2}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_2_unused_output_all_tensors_as_inputs_all_inputs_as_internal = TestModelManager::get().add("while_fib_unknown_rank_n_2_unused_output_all_tensors_as_inputs_all_inputs_as_internal", get_test_model_n_2_unused_output_all_tensors_as_inputs_all_inputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_2_unused_output_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // dummy1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param46 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // fib_out_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }, { + .inputs = {5, 7, 8}, + .outputs = {9}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {9} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_2_unused_output_all_outputs_as_internal = TestModelManager::get().add("while_fib_unknown_rank_n_2_unused_output_all_outputs_as_internal", get_test_model_n_2_unused_output_all_outputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_2_unused_output_relaxed() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = true, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_2_unused_output_relaxed = TestModelManager::get().add("while_fib_unknown_rank_n_2_unused_output_relaxed", get_test_model_n_2_unused_output_relaxed()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_2_unused_output_relaxed_all_tensors_as_inputs() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = true, + .main = { + .inputIndexes = {2, 4}, + .operands = {{ // cond + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_2_unused_output_relaxed_all_tensors_as_inputs = TestModelManager::get().add("while_fib_unknown_rank_n_2_unused_output_relaxed_all_tensors_as_inputs", get_test_model_n_2_unused_output_relaxed_all_tensors_as_inputs()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_2_unused_output_relaxed_all_tensors_as_inputs_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = true, + .main = { + .inputIndexes = {4, 7}, + .operands = {{ // cond + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_init_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // dummy5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param50 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {7, 8, 9}, + .outputs = {2}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_2_unused_output_relaxed_all_tensors_as_inputs_all_inputs_as_internal = TestModelManager::get().add("while_fib_unknown_rank_n_2_unused_output_relaxed_all_tensors_as_inputs_all_inputs_as_internal", get_test_model_n_2_unused_output_relaxed_all_tensors_as_inputs_all_inputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_2_unused_output_relaxed_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = true, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // dummy6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param51 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // fib_out_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }, { + .inputs = {5, 7, 8}, + .outputs = {9}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {9} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_2_unused_output_relaxed_all_outputs_as_internal = TestModelManager::get().add("while_fib_unknown_rank_n_2_unused_output_relaxed_all_outputs_as_internal", get_test_model_n_2_unused_output_relaxed_all_outputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_2_unused_output_float16() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // matrix + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // zero_bias + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_2_unused_output_float16 = TestModelManager::get().add("while_fib_unknown_rank_n_2_unused_output_float16", get_test_model_n_2_unused_output_float16()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_2_unused_output_float16_all_tensors_as_inputs() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {2, 4}, + .operands = {{ // cond + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // matrix + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // zero_bias + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_2_unused_output_float16_all_tensors_as_inputs = TestModelManager::get().add("while_fib_unknown_rank_n_2_unused_output_float16_all_tensors_as_inputs", get_test_model_n_2_unused_output_float16_all_tensors_as_inputs()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_2_unused_output_float16_all_tensors_as_inputs_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4, 7}, + .operands = {{ // cond + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_init_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // dummy10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param55 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {7, 8, 9}, + .outputs = {2}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // matrix + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // zero_bias + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_2_unused_output_float16_all_tensors_as_inputs_all_inputs_as_internal = TestModelManager::get().add("while_fib_unknown_rank_n_2_unused_output_float16_all_tensors_as_inputs_all_inputs_as_internal", get_test_model_n_2_unused_output_float16_all_tensors_as_inputs_all_inputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_2_unused_output_float16_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // dummy11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param56 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // fib_out_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }, { + .inputs = {5, 7, 8}, + .outputs = {9}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {9} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // matrix + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // zero_bias + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_2_unused_output_float16_all_outputs_as_internal = TestModelManager::get().add("while_fib_unknown_rank_n_2_unused_output_float16_all_outputs_as_internal", get_test_model_n_2_unused_output_float16_all_outputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_2_unused_output_quant8() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // matrix + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // zero_bias + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_2_unused_output_quant8 = TestModelManager::get().add("while_fib_unknown_rank_n_2_unused_output_quant8", get_test_model_n_2_unused_output_quant8()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_2_unused_output_quant8_all_tensors_as_inputs() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {2, 4}, + .operands = {{ // cond + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // matrix + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // zero_bias + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_2_unused_output_quant8_all_tensors_as_inputs = TestModelManager::get().add("while_fib_unknown_rank_n_2_unused_output_quant8_all_tensors_as_inputs", get_test_model_n_2_unused_output_quant8_all_tensors_as_inputs()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_2_unused_output_quant8_all_tensors_as_inputs_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4, 7}, + .operands = {{ // cond + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_init_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // dummy15 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param60 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {7, 8, 9}, + .outputs = {2}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // matrix + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // zero_bias + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_2_unused_output_quant8_all_tensors_as_inputs_all_inputs_as_internal = TestModelManager::get().add("while_fib_unknown_rank_n_2_unused_output_quant8_all_tensors_as_inputs_all_inputs_as_internal", get_test_model_n_2_unused_output_quant8_all_tensors_as_inputs_all_inputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_2_unused_output_quant8_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // dummy16 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param61 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // fib_out_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }, { + .inputs = {5, 7, 8}, + .outputs = {9}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {9} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // matrix + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // zero_bias + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_2_unused_output_quant8_all_outputs_as_internal = TestModelManager::get().add("while_fib_unknown_rank_n_2_unused_output_quant8_all_outputs_as_internal", get_test_model_n_2_unused_output_quant8_all_outputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_2_unused_output_quant8_signed() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // matrix + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // zero_bias + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_2_unused_output_quant8_signed = TestModelManager::get().add("while_fib_unknown_rank_n_2_unused_output_quant8_signed", get_test_model_n_2_unused_output_quant8_signed()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_2_unused_output_quant8_signed_all_tensors_as_inputs() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {2, 4}, + .operands = {{ // cond + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // matrix + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // zero_bias + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_2_unused_output_quant8_signed_all_tensors_as_inputs = TestModelManager::get().add("while_fib_unknown_rank_n_2_unused_output_quant8_signed_all_tensors_as_inputs", get_test_model_n_2_unused_output_quant8_signed_all_tensors_as_inputs()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_2_unused_output_quant8_signed_all_tensors_as_inputs_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4, 7}, + .operands = {{ // cond + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_init_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // dummy20 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param65 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {7, 8, 9}, + .outputs = {2}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // matrix + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // zero_bias + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_2_unused_output_quant8_signed_all_tensors_as_inputs_all_inputs_as_internal = TestModelManager::get().add("while_fib_unknown_rank_n_2_unused_output_quant8_signed_all_tensors_as_inputs_all_inputs_as_internal", get_test_model_n_2_unused_output_quant8_signed_all_tensors_as_inputs_all_inputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_2_unused_output_quant8_signed_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // dummy21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param66 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // fib_out_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }, { + .inputs = {5, 7, 8}, + .outputs = {9}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {9} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // matrix + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // zero_bias + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_2_unused_output_quant8_signed_all_outputs_as_internal = TestModelManager::get().add("while_fib_unknown_rank_n_2_unused_output_quant8_signed_all_outputs_as_internal", get_test_model_n_2_unused_output_quant8_signed_all_outputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_3_unused_output() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param17 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({3}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f}), + .dimensions = {1, 3}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param15 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param16 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_3_unused_output = TestModelManager::get().add("while_fib_unknown_rank_n_3_unused_output", get_test_model_n_3_unused_output()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_3_unused_output_all_tensors_as_inputs() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {2, 4}, + .operands = {{ // cond1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param17 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({3}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f}), + .dimensions = {1, 3}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param15 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param16 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_3_unused_output_all_tensors_as_inputs = TestModelManager::get().add("while_fib_unknown_rank_n_3_unused_output_all_tensors_as_inputs", get_test_model_n_3_unused_output_all_tensors_as_inputs()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_3_unused_output_all_tensors_as_inputs_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4, 7}, + .operands = {{ // cond1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param17 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({3}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f}), + .dimensions = {1, 3}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_init1_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // dummy25 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param70 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {7, 8, 9}, + .outputs = {2}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param15 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param16 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_3_unused_output_all_tensors_as_inputs_all_inputs_as_internal = TestModelManager::get().add("while_fib_unknown_rank_n_3_unused_output_all_tensors_as_inputs_all_inputs_as_internal", get_test_model_n_3_unused_output_all_tensors_as_inputs_all_inputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_3_unused_output_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param17 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({3}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 3}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // dummy26 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param71 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // fib_out2_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f}), + .dimensions = {1, 3}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }, { + .inputs = {5, 7, 8}, + .outputs = {9}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {9} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param15 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param16 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_3_unused_output_all_outputs_as_internal = TestModelManager::get().add("while_fib_unknown_rank_n_3_unused_output_all_outputs_as_internal", get_test_model_n_3_unused_output_all_outputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_3_unused_output_relaxed() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = true, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param17 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({3}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f}), + .dimensions = {1, 3}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param15 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param16 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_3_unused_output_relaxed = TestModelManager::get().add("while_fib_unknown_rank_n_3_unused_output_relaxed", get_test_model_n_3_unused_output_relaxed()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_3_unused_output_relaxed_all_tensors_as_inputs() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = true, + .main = { + .inputIndexes = {2, 4}, + .operands = {{ // cond1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param17 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({3}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f}), + .dimensions = {1, 3}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param15 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param16 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_3_unused_output_relaxed_all_tensors_as_inputs = TestModelManager::get().add("while_fib_unknown_rank_n_3_unused_output_relaxed_all_tensors_as_inputs", get_test_model_n_3_unused_output_relaxed_all_tensors_as_inputs()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_3_unused_output_relaxed_all_tensors_as_inputs_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = true, + .main = { + .inputIndexes = {4, 7}, + .operands = {{ // cond1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param17 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({3}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f}), + .dimensions = {1, 3}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_init1_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // dummy30 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param75 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {7, 8, 9}, + .outputs = {2}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param15 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param16 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_3_unused_output_relaxed_all_tensors_as_inputs_all_inputs_as_internal = TestModelManager::get().add("while_fib_unknown_rank_n_3_unused_output_relaxed_all_tensors_as_inputs_all_inputs_as_internal", get_test_model_n_3_unused_output_relaxed_all_tensors_as_inputs_all_inputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_3_unused_output_relaxed_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = true, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param17 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({3}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 3}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // dummy31 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param76 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // fib_out2_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f}), + .dimensions = {1, 3}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }, { + .inputs = {5, 7, 8}, + .outputs = {9}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {9} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param15 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param16 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_3_unused_output_relaxed_all_outputs_as_internal = TestModelManager::get().add("while_fib_unknown_rank_n_3_unused_output_relaxed_all_outputs_as_internal", get_test_model_n_3_unused_output_relaxed_all_outputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_3_unused_output_float16() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param17 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({3}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f, 2.0f}), + .dimensions = {1, 3}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // matrix1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // zero_bias1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param15 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param16 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_3_unused_output_float16 = TestModelManager::get().add("while_fib_unknown_rank_n_3_unused_output_float16", get_test_model_n_3_unused_output_float16()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_3_unused_output_float16_all_tensors_as_inputs() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {2, 4}, + .operands = {{ // cond1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param17 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({3}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f, 2.0f}), + .dimensions = {1, 3}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // matrix1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // zero_bias1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param15 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param16 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_3_unused_output_float16_all_tensors_as_inputs = TestModelManager::get().add("while_fib_unknown_rank_n_3_unused_output_float16_all_tensors_as_inputs", get_test_model_n_3_unused_output_float16_all_tensors_as_inputs()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_3_unused_output_float16_all_tensors_as_inputs_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4, 7}, + .operands = {{ // cond1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param17 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({3}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f, 2.0f}), + .dimensions = {1, 3}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_init1_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // dummy35 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param80 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {7, 8, 9}, + .outputs = {2}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // matrix1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // zero_bias1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param15 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param16 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_3_unused_output_float16_all_tensors_as_inputs_all_inputs_as_internal = TestModelManager::get().add("while_fib_unknown_rank_n_3_unused_output_float16_all_tensors_as_inputs_all_inputs_as_internal", get_test_model_n_3_unused_output_float16_all_tensors_as_inputs_all_inputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_3_unused_output_float16_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param17 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({3}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 3}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // dummy36 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param81 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // fib_out2_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f, 2.0f}), + .dimensions = {1, 3}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }, { + .inputs = {5, 7, 8}, + .outputs = {9}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {9} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // matrix1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // zero_bias1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param15 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param16 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_3_unused_output_float16_all_outputs_as_internal = TestModelManager::get().add("while_fib_unknown_rank_n_3_unused_output_float16_all_outputs_as_internal", get_test_model_n_3_unused_output_float16_all_outputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_3_unused_output_quant8() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param17 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({3}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1, 2}), + .dimensions = {1, 3}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // matrix1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // zero_bias1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param15 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param16 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_3_unused_output_quant8 = TestModelManager::get().add("while_fib_unknown_rank_n_3_unused_output_quant8", get_test_model_n_3_unused_output_quant8()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_3_unused_output_quant8_all_tensors_as_inputs() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {2, 4}, + .operands = {{ // cond1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param17 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({3}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1, 2}), + .dimensions = {1, 3}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // matrix1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // zero_bias1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param15 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param16 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_3_unused_output_quant8_all_tensors_as_inputs = TestModelManager::get().add("while_fib_unknown_rank_n_3_unused_output_quant8_all_tensors_as_inputs", get_test_model_n_3_unused_output_quant8_all_tensors_as_inputs()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_3_unused_output_quant8_all_tensors_as_inputs_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4, 7}, + .operands = {{ // cond1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param17 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({3}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1, 2}), + .dimensions = {1, 3}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_init1_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // dummy40 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param85 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {7, 8, 9}, + .outputs = {2}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // matrix1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // zero_bias1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param15 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param16 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_3_unused_output_quant8_all_tensors_as_inputs_all_inputs_as_internal = TestModelManager::get().add("while_fib_unknown_rank_n_3_unused_output_quant8_all_tensors_as_inputs_all_inputs_as_internal", get_test_model_n_3_unused_output_quant8_all_tensors_as_inputs_all_inputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_3_unused_output_quant8_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param17 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({3}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 3}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // dummy41 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param86 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // fib_out2_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1, 2}), + .dimensions = {1, 3}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }, { + .inputs = {5, 7, 8}, + .outputs = {9}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {9} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // matrix1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // zero_bias1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param15 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param16 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_3_unused_output_quant8_all_outputs_as_internal = TestModelManager::get().add("while_fib_unknown_rank_n_3_unused_output_quant8_all_outputs_as_internal", get_test_model_n_3_unused_output_quant8_all_outputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_3_unused_output_quant8_signed() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param17 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({3}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1, 2}), + .dimensions = {1, 3}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // matrix1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // zero_bias1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param15 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param16 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_3_unused_output_quant8_signed = TestModelManager::get().add("while_fib_unknown_rank_n_3_unused_output_quant8_signed", get_test_model_n_3_unused_output_quant8_signed()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_3_unused_output_quant8_signed_all_tensors_as_inputs() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {2, 4}, + .operands = {{ // cond1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param17 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({3}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1, 2}), + .dimensions = {1, 3}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // matrix1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // zero_bias1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param15 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param16 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_3_unused_output_quant8_signed_all_tensors_as_inputs = TestModelManager::get().add("while_fib_unknown_rank_n_3_unused_output_quant8_signed_all_tensors_as_inputs", get_test_model_n_3_unused_output_quant8_signed_all_tensors_as_inputs()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_3_unused_output_quant8_signed_all_tensors_as_inputs_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4, 7}, + .operands = {{ // cond1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param17 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({3}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1, 2}), + .dimensions = {1, 3}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_init1_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // dummy45 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param90 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {7, 8, 9}, + .outputs = {2}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // matrix1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // zero_bias1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param15 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param16 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_3_unused_output_quant8_signed_all_tensors_as_inputs_all_inputs_as_internal = TestModelManager::get().add("while_fib_unknown_rank_n_3_unused_output_quant8_signed_all_tensors_as_inputs_all_inputs_as_internal", get_test_model_n_3_unused_output_quant8_signed_all_tensors_as_inputs_all_inputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_3_unused_output_quant8_signed_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param17 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({3}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 3}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // dummy46 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param91 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // fib_out2_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1, 2}), + .dimensions = {1, 3}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }, { + .inputs = {5, 7, 8}, + .outputs = {9}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {9} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // matrix1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // zero_bias1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib1 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param15 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param16 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_3_unused_output_quant8_signed_all_outputs_as_internal = TestModelManager::get().add("while_fib_unknown_rank_n_3_unused_output_quant8_signed_all_outputs_as_internal", get_test_model_n_3_unused_output_quant8_signed_all_outputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_4_unused_output() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param26 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({4}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f, 3.0f}), + .dimensions = {1, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param18 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param19 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param20 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param25 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_4_unused_output = TestModelManager::get().add("while_fib_unknown_rank_n_4_unused_output", get_test_model_n_4_unused_output()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_4_unused_output_all_tensors_as_inputs() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {2, 4}, + .operands = {{ // cond2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param26 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({4}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f, 3.0f}), + .dimensions = {1, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param18 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param19 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param20 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param25 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_4_unused_output_all_tensors_as_inputs = TestModelManager::get().add("while_fib_unknown_rank_n_4_unused_output_all_tensors_as_inputs", get_test_model_n_4_unused_output_all_tensors_as_inputs()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_4_unused_output_all_tensors_as_inputs_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4, 7}, + .operands = {{ // cond2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param26 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({4}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f, 3.0f}), + .dimensions = {1, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_init2_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // dummy50 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param95 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {7, 8, 9}, + .outputs = {2}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param18 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param19 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param20 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param25 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_4_unused_output_all_tensors_as_inputs_all_inputs_as_internal = TestModelManager::get().add("while_fib_unknown_rank_n_4_unused_output_all_tensors_as_inputs_all_inputs_as_internal", get_test_model_n_4_unused_output_all_tensors_as_inputs_all_inputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_4_unused_output_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param26 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({4}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // dummy51 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param96 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // fib_out4_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f, 3.0f}), + .dimensions = {1, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }, { + .inputs = {5, 7, 8}, + .outputs = {9}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {9} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param18 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param19 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param20 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param25 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_4_unused_output_all_outputs_as_internal = TestModelManager::get().add("while_fib_unknown_rank_n_4_unused_output_all_outputs_as_internal", get_test_model_n_4_unused_output_all_outputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_4_unused_output_relaxed() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = true, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param26 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({4}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f, 3.0f}), + .dimensions = {1, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param18 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param19 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param20 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param25 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_4_unused_output_relaxed = TestModelManager::get().add("while_fib_unknown_rank_n_4_unused_output_relaxed", get_test_model_n_4_unused_output_relaxed()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_4_unused_output_relaxed_all_tensors_as_inputs() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = true, + .main = { + .inputIndexes = {2, 4}, + .operands = {{ // cond2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param26 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({4}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f, 3.0f}), + .dimensions = {1, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param18 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param19 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param20 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param25 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_4_unused_output_relaxed_all_tensors_as_inputs = TestModelManager::get().add("while_fib_unknown_rank_n_4_unused_output_relaxed_all_tensors_as_inputs", get_test_model_n_4_unused_output_relaxed_all_tensors_as_inputs()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_4_unused_output_relaxed_all_tensors_as_inputs_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = true, + .main = { + .inputIndexes = {4, 7}, + .operands = {{ // cond2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param26 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({4}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f, 3.0f}), + .dimensions = {1, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_init2_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // dummy55 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param100 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {7, 8, 9}, + .outputs = {2}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param18 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param19 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param20 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param25 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_4_unused_output_relaxed_all_tensors_as_inputs_all_inputs_as_internal = TestModelManager::get().add("while_fib_unknown_rank_n_4_unused_output_relaxed_all_tensors_as_inputs_all_inputs_as_internal", get_test_model_n_4_unused_output_relaxed_all_tensors_as_inputs_all_inputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_4_unused_output_relaxed_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = true, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param26 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({4}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // dummy56 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param101 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // fib_out4_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f, 3.0f}), + .dimensions = {1, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }, { + .inputs = {5, 7, 8}, + .outputs = {9}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {9} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param18 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param19 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param20 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param25 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_4_unused_output_relaxed_all_outputs_as_internal = TestModelManager::get().add("while_fib_unknown_rank_n_4_unused_output_relaxed_all_outputs_as_internal", get_test_model_n_4_unused_output_relaxed_all_outputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_4_unused_output_float16() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param26 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({4}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f, 2.0f, 3.0f}), + .dimensions = {1, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param18 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param19 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param20 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // matrix2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // zero_bias2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param25 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_4_unused_output_float16 = TestModelManager::get().add("while_fib_unknown_rank_n_4_unused_output_float16", get_test_model_n_4_unused_output_float16()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_4_unused_output_float16_all_tensors_as_inputs() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {2, 4}, + .operands = {{ // cond2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param26 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({4}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f, 2.0f, 3.0f}), + .dimensions = {1, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param18 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param19 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param20 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // matrix2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // zero_bias2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param25 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_4_unused_output_float16_all_tensors_as_inputs = TestModelManager::get().add("while_fib_unknown_rank_n_4_unused_output_float16_all_tensors_as_inputs", get_test_model_n_4_unused_output_float16_all_tensors_as_inputs()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_4_unused_output_float16_all_tensors_as_inputs_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4, 7}, + .operands = {{ // cond2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param26 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({4}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f, 2.0f, 3.0f}), + .dimensions = {1, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_init2_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // dummy60 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param105 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {7, 8, 9}, + .outputs = {2}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param18 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param19 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param20 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // matrix2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // zero_bias2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param25 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_4_unused_output_float16_all_tensors_as_inputs_all_inputs_as_internal = TestModelManager::get().add("while_fib_unknown_rank_n_4_unused_output_float16_all_tensors_as_inputs_all_inputs_as_internal", get_test_model_n_4_unused_output_float16_all_tensors_as_inputs_all_inputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_4_unused_output_float16_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param26 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({4}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // dummy61 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param106 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // fib_out4_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f, 2.0f, 3.0f}), + .dimensions = {1, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }, { + .inputs = {5, 7, 8}, + .outputs = {9}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {9} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param18 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param19 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param20 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // matrix2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // zero_bias2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param25 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_4_unused_output_float16_all_outputs_as_internal = TestModelManager::get().add("while_fib_unknown_rank_n_4_unused_output_float16_all_outputs_as_internal", get_test_model_n_4_unused_output_float16_all_outputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_4_unused_output_quant8() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param26 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({4}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1, 2, 3}), + .dimensions = {1, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param18 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param19 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param20 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // matrix2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // zero_bias2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param25 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_4_unused_output_quant8 = TestModelManager::get().add("while_fib_unknown_rank_n_4_unused_output_quant8", get_test_model_n_4_unused_output_quant8()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_4_unused_output_quant8_all_tensors_as_inputs() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {2, 4}, + .operands = {{ // cond2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param26 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({4}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1, 2, 3}), + .dimensions = {1, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param18 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param19 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param20 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // matrix2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // zero_bias2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param25 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_4_unused_output_quant8_all_tensors_as_inputs = TestModelManager::get().add("while_fib_unknown_rank_n_4_unused_output_quant8_all_tensors_as_inputs", get_test_model_n_4_unused_output_quant8_all_tensors_as_inputs()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_4_unused_output_quant8_all_tensors_as_inputs_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4, 7}, + .operands = {{ // cond2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param26 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({4}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1, 2, 3}), + .dimensions = {1, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_init2_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // dummy65 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param110 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {7, 8, 9}, + .outputs = {2}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param18 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param19 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param20 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // matrix2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // zero_bias2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param25 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_4_unused_output_quant8_all_tensors_as_inputs_all_inputs_as_internal = TestModelManager::get().add("while_fib_unknown_rank_n_4_unused_output_quant8_all_tensors_as_inputs_all_inputs_as_internal", get_test_model_n_4_unused_output_quant8_all_tensors_as_inputs_all_inputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_4_unused_output_quant8_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param26 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({4}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // dummy66 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param111 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // fib_out4_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1, 2, 3}), + .dimensions = {1, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }, { + .inputs = {5, 7, 8}, + .outputs = {9}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {9} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param18 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param19 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param20 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // matrix2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // zero_bias2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param25 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_4_unused_output_quant8_all_outputs_as_internal = TestModelManager::get().add("while_fib_unknown_rank_n_4_unused_output_quant8_all_outputs_as_internal", get_test_model_n_4_unused_output_quant8_all_outputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_4_unused_output_quant8_signed() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param26 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({4}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1, 2, 3}), + .dimensions = {1, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param18 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param19 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param20 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // matrix2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // zero_bias2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param25 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_4_unused_output_quant8_signed = TestModelManager::get().add("while_fib_unknown_rank_n_4_unused_output_quant8_signed", get_test_model_n_4_unused_output_quant8_signed()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_4_unused_output_quant8_signed_all_tensors_as_inputs() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {2, 4}, + .operands = {{ // cond2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param26 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({4}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1, 2, 3}), + .dimensions = {1, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param18 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param19 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param20 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // matrix2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // zero_bias2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param25 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_4_unused_output_quant8_signed_all_tensors_as_inputs = TestModelManager::get().add("while_fib_unknown_rank_n_4_unused_output_quant8_signed_all_tensors_as_inputs", get_test_model_n_4_unused_output_quant8_signed_all_tensors_as_inputs()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_4_unused_output_quant8_signed_all_tensors_as_inputs_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4, 7}, + .operands = {{ // cond2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param26 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({4}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1, 2, 3}), + .dimensions = {1, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_init2_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // dummy70 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param115 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {7, 8, 9}, + .outputs = {2}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param18 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param19 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param20 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // matrix2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // zero_bias2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param25 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_4_unused_output_quant8_signed_all_tensors_as_inputs_all_inputs_as_internal = TestModelManager::get().add("while_fib_unknown_rank_n_4_unused_output_quant8_signed_all_tensors_as_inputs_all_inputs_as_internal", get_test_model_n_4_unused_output_quant8_signed_all_tensors_as_inputs_all_inputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_4_unused_output_quant8_signed_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param26 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({4}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // dummy71 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param116 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // fib_out4_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1, 2, 3}), + .dimensions = {1, 4}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5, 6}, + .type = TestOperationType::WHILE + }, { + .inputs = {5, 7, 8}, + .outputs = {9}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {9} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out5 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param18 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param19 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param20 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param21 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // matrix2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // zero_bias2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param22 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib2 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param25 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_4_unused_output_quant8_signed_all_outputs_as_internal = TestModelManager::get().add("while_fib_unknown_rank_n_4_unused_output_quant8_signed_all_outputs_as_internal", get_test_model_n_4_unused_output_quant8_signed_all_outputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_5() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param35 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({5}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f, 3.0f, 5.0f}), + .dimensions = {1, 5}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param27 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param28 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param29 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param30 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param31 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param32 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param33 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param34 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_5 = TestModelManager::get().add("while_fib_unknown_rank_n_5", get_test_model_n_5()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_5_all_tensors_as_inputs() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {2, 4}, + .operands = {{ // cond3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param35 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({5}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f, 3.0f, 5.0f}), + .dimensions = {1, 5}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param27 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param28 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param29 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param30 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param31 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param32 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param33 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param34 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_5_all_tensors_as_inputs = TestModelManager::get().add("while_fib_unknown_rank_n_5_all_tensors_as_inputs", get_test_model_n_5_all_tensors_as_inputs()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_5_all_tensors_as_inputs_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4, 6}, + .operands = {{ // cond3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param35 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({5}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f, 3.0f, 5.0f}), + .dimensions = {1, 5}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // fib_init3_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // dummy75 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param120 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {6, 7, 8}, + .outputs = {2}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param27 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param28 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param29 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param30 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param31 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param32 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param33 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param34 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_5_all_tensors_as_inputs_all_inputs_as_internal = TestModelManager::get().add("while_fib_unknown_rank_n_5_all_tensors_as_inputs_all_inputs_as_internal", get_test_model_n_5_all_tensors_as_inputs_all_inputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_5_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param35 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({5}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 5}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // dummy76 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param121 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // fib_out6_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f, 3.0f, 5.0f}), + .dimensions = {1, 5}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }, { + .inputs = {5, 6, 7}, + .outputs = {8}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {8} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param27 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param28 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param29 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param30 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param31 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param32 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param33 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param34 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_5_all_outputs_as_internal = TestModelManager::get().add("while_fib_unknown_rank_n_5_all_outputs_as_internal", get_test_model_n_5_all_outputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_5_relaxed() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = true, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param35 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({5}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f, 3.0f, 5.0f}), + .dimensions = {1, 5}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param27 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param28 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param29 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param30 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param31 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param32 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param33 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param34 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_5_relaxed = TestModelManager::get().add("while_fib_unknown_rank_n_5_relaxed", get_test_model_n_5_relaxed()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_5_relaxed_all_tensors_as_inputs() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = true, + .main = { + .inputIndexes = {2, 4}, + .operands = {{ // cond3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param35 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({5}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f, 3.0f, 5.0f}), + .dimensions = {1, 5}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param27 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param28 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param29 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param30 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param31 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param32 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param33 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param34 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_5_relaxed_all_tensors_as_inputs = TestModelManager::get().add("while_fib_unknown_rank_n_5_relaxed_all_tensors_as_inputs", get_test_model_n_5_relaxed_all_tensors_as_inputs()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_5_relaxed_all_tensors_as_inputs_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = true, + .main = { + .inputIndexes = {4, 6}, + .operands = {{ // cond3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param35 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({5}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f, 3.0f, 5.0f}), + .dimensions = {1, 5}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // fib_init3_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // dummy80 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param125 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {6, 7, 8}, + .outputs = {2}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param27 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param28 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param29 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param30 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param31 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param32 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param33 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param34 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_5_relaxed_all_tensors_as_inputs_all_inputs_as_internal = TestModelManager::get().add("while_fib_unknown_rank_n_5_relaxed_all_tensors_as_inputs_all_inputs_as_internal", get_test_model_n_5_relaxed_all_tensors_as_inputs_all_inputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_5_relaxed_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = true, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param35 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({5}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 5}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // dummy81 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param126 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // fib_out6_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f, 3.0f, 5.0f}), + .dimensions = {1, 5}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }, { + .inputs = {5, 6, 7}, + .outputs = {8}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {8} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param27 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param28 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param29 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param30 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param31 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param32 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param33 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param34 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_5_relaxed_all_outputs_as_internal = TestModelManager::get().add("while_fib_unknown_rank_n_5_relaxed_all_outputs_as_internal", get_test_model_n_5_relaxed_all_outputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_5_float16() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param35 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({5}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f, 2.0f, 3.0f, 5.0f}), + .dimensions = {1, 5}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param27 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param28 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param29 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param30 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // matrix3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // zero_bias3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param31 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param32 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param33 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param34 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_5_float16 = TestModelManager::get().add("while_fib_unknown_rank_n_5_float16", get_test_model_n_5_float16()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_5_float16_all_tensors_as_inputs() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {2, 4}, + .operands = {{ // cond3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param35 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({5}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f, 2.0f, 3.0f, 5.0f}), + .dimensions = {1, 5}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param27 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param28 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param29 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param30 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // matrix3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // zero_bias3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param31 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param32 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param33 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param34 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_5_float16_all_tensors_as_inputs = TestModelManager::get().add("while_fib_unknown_rank_n_5_float16_all_tensors_as_inputs", get_test_model_n_5_float16_all_tensors_as_inputs()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_5_float16_all_tensors_as_inputs_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4, 6}, + .operands = {{ // cond3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param35 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({5}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f, 2.0f, 3.0f, 5.0f}), + .dimensions = {1, 5}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // fib_init3_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // dummy85 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param130 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {6, 7, 8}, + .outputs = {2}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param27 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param28 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param29 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param30 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // matrix3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // zero_bias3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param31 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param32 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param33 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param34 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_5_float16_all_tensors_as_inputs_all_inputs_as_internal = TestModelManager::get().add("while_fib_unknown_rank_n_5_float16_all_tensors_as_inputs_all_inputs_as_internal", get_test_model_n_5_float16_all_tensors_as_inputs_all_inputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_5_float16_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param35 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({5}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 5}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // dummy86 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param131 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // fib_out6_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f, 2.0f, 3.0f, 5.0f}), + .dimensions = {1, 5}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }, { + .inputs = {5, 6, 7}, + .outputs = {8}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {8} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param27 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param28 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param29 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param30 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // matrix3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // zero_bias3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param31 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param32 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param33 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param34 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_5_float16_all_outputs_as_internal = TestModelManager::get().add("while_fib_unknown_rank_n_5_float16_all_outputs_as_internal", get_test_model_n_5_float16_all_outputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_5_quant8() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param35 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({5}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1, 2, 3, 5}), + .dimensions = {1, 5}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param27 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param28 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param29 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param30 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // matrix3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // zero_bias3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param31 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param32 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param33 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param34 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_5_quant8 = TestModelManager::get().add("while_fib_unknown_rank_n_5_quant8", get_test_model_n_5_quant8()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_5_quant8_all_tensors_as_inputs() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {2, 4}, + .operands = {{ // cond3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param35 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({5}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1, 2, 3, 5}), + .dimensions = {1, 5}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param27 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param28 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param29 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param30 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // matrix3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // zero_bias3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param31 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param32 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param33 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param34 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_5_quant8_all_tensors_as_inputs = TestModelManager::get().add("while_fib_unknown_rank_n_5_quant8_all_tensors_as_inputs", get_test_model_n_5_quant8_all_tensors_as_inputs()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_5_quant8_all_tensors_as_inputs_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4, 6}, + .operands = {{ // cond3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param35 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({5}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1, 2, 3, 5}), + .dimensions = {1, 5}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // fib_init3_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // dummy90 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param135 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {6, 7, 8}, + .outputs = {2}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param27 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param28 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param29 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param30 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // matrix3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // zero_bias3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param31 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param32 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param33 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param34 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_5_quant8_all_tensors_as_inputs_all_inputs_as_internal = TestModelManager::get().add("while_fib_unknown_rank_n_5_quant8_all_tensors_as_inputs_all_inputs_as_internal", get_test_model_n_5_quant8_all_tensors_as_inputs_all_inputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_5_quant8_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param35 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({5}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 5}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // dummy91 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param136 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // fib_out6_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1, 2, 3, 5}), + .dimensions = {1, 5}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }, { + .inputs = {5, 6, 7}, + .outputs = {8}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {8} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param27 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param28 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param29 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param30 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // matrix3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // zero_bias3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param31 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param32 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param33 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param34 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_5_quant8_all_outputs_as_internal = TestModelManager::get().add("while_fib_unknown_rank_n_5_quant8_all_outputs_as_internal", get_test_model_n_5_quant8_all_outputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_5_quant8_signed() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param35 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({5}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1, 2, 3, 5}), + .dimensions = {1, 5}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param27 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param28 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param29 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param30 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // matrix3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // zero_bias3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param31 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param32 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param33 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param34 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_5_quant8_signed = TestModelManager::get().add("while_fib_unknown_rank_n_5_quant8_signed", get_test_model_n_5_quant8_signed()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_5_quant8_signed_all_tensors_as_inputs() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {2, 4}, + .operands = {{ // cond3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param35 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({5}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1, 2, 3, 5}), + .dimensions = {1, 5}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param27 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param28 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param29 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param30 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // matrix3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // zero_bias3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param31 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param32 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param33 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param34 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_5_quant8_signed_all_tensors_as_inputs = TestModelManager::get().add("while_fib_unknown_rank_n_5_quant8_signed_all_tensors_as_inputs", get_test_model_n_5_quant8_signed_all_tensors_as_inputs()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_5_quant8_signed_all_tensors_as_inputs_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4, 6}, + .operands = {{ // cond3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param35 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({5}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1, 2, 3, 5}), + .dimensions = {1, 5}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // fib_init3_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // dummy95 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param140 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {6, 7, 8}, + .outputs = {2}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param27 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param28 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param29 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param30 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // matrix3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // zero_bias3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param31 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param32 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param33 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param34 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_5_quant8_signed_all_tensors_as_inputs_all_inputs_as_internal = TestModelManager::get().add("while_fib_unknown_rank_n_5_quant8_signed_all_tensors_as_inputs_all_inputs_as_internal", get_test_model_n_5_quant8_signed_all_tensors_as_inputs_all_inputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_5_quant8_signed_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param35 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({5}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 5}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // dummy96 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param141 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // fib_out6_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1, 2, 3, 5}), + .dimensions = {1, 5}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }, { + .inputs = {5, 6, 7}, + .outputs = {8}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {8} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n10 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n11 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out6 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param27 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param28 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param29 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param30 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last23 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // matrix3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // zero_bias3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param31 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib3 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param32 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param33 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param34 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_5_quant8_signed_all_outputs_as_internal = TestModelManager::get().add("while_fib_unknown_rank_n_5_quant8_signed_all_outputs_as_internal", get_test_model_n_5_quant8_signed_all_outputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_6() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param44 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({6}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f, 3.0f, 5.0f, 8.0f}), + .dimensions = {1, 6}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param36 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param37 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param38 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param39 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param40 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param41 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param42 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param43 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_6 = TestModelManager::get().add("while_fib_unknown_rank_n_6", get_test_model_n_6()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_6_all_tensors_as_inputs() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {2, 4}, + .operands = {{ // cond4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param44 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({6}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f, 3.0f, 5.0f, 8.0f}), + .dimensions = {1, 6}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param36 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param37 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param38 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param39 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param40 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param41 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param42 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param43 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_6_all_tensors_as_inputs = TestModelManager::get().add("while_fib_unknown_rank_n_6_all_tensors_as_inputs", get_test_model_n_6_all_tensors_as_inputs()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_6_all_tensors_as_inputs_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4, 6}, + .operands = {{ // cond4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param44 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({6}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f, 3.0f, 5.0f, 8.0f}), + .dimensions = {1, 6}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // fib_init4_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // dummy100 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param145 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {6, 7, 8}, + .outputs = {2}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param36 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param37 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param38 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param39 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param40 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param41 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param42 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param43 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_6_all_tensors_as_inputs_all_inputs_as_internal = TestModelManager::get().add("while_fib_unknown_rank_n_6_all_tensors_as_inputs_all_inputs_as_internal", get_test_model_n_6_all_tensors_as_inputs_all_inputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_6_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param44 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({6}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 6}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // dummy101 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param146 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // fib_out8_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f, 3.0f, 5.0f, 8.0f}), + .dimensions = {1, 6}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }, { + .inputs = {5, 6, 7}, + .outputs = {8}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {8} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param36 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param37 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param38 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param39 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param40 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param41 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param42 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param43 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_6_all_outputs_as_internal = TestModelManager::get().add("while_fib_unknown_rank_n_6_all_outputs_as_internal", get_test_model_n_6_all_outputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_6_relaxed() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = true, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param44 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({6}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f, 3.0f, 5.0f, 8.0f}), + .dimensions = {1, 6}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param36 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param37 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param38 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param39 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param40 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param41 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param42 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param43 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_6_relaxed = TestModelManager::get().add("while_fib_unknown_rank_n_6_relaxed", get_test_model_n_6_relaxed()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_6_relaxed_all_tensors_as_inputs() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = true, + .main = { + .inputIndexes = {2, 4}, + .operands = {{ // cond4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param44 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({6}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f, 3.0f, 5.0f, 8.0f}), + .dimensions = {1, 6}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param36 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param37 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param38 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param39 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param40 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param41 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param42 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param43 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_6_relaxed_all_tensors_as_inputs = TestModelManager::get().add("while_fib_unknown_rank_n_6_relaxed_all_tensors_as_inputs", get_test_model_n_6_relaxed_all_tensors_as_inputs()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_6_relaxed_all_tensors_as_inputs_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = true, + .main = { + .inputIndexes = {4, 6}, + .operands = {{ // cond4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param44 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({6}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f, 3.0f, 5.0f, 8.0f}), + .dimensions = {1, 6}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // fib_init4_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // dummy105 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param150 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {6, 7, 8}, + .outputs = {2}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param36 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param37 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param38 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param39 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param40 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param41 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param42 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param43 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_6_relaxed_all_tensors_as_inputs_all_inputs_as_internal = TestModelManager::get().add("while_fib_unknown_rank_n_6_relaxed_all_tensors_as_inputs_all_inputs_as_internal", get_test_model_n_6_relaxed_all_tensors_as_inputs_all_inputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_6_relaxed_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = true, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param44 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({6}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 6}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // dummy106 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param151 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // fib_out8_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f, 2.0f, 3.0f, 5.0f, 8.0f}), + .dimensions = {1, 6}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }, { + .inputs = {5, 6, 7}, + .outputs = {8}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {8} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // i_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param36 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param37 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param38 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param39 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // matrix4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // zero_bias4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param40 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<float>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT32, + .zeroPoint = 0 + }, { // param41 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param42 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param43 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_6_relaxed_all_outputs_as_internal = TestModelManager::get().add("while_fib_unknown_rank_n_6_relaxed_all_outputs_as_internal", get_test_model_n_6_relaxed_all_outputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_6_float16() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param44 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({6}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f, 2.0f, 3.0f, 5.0f, 8.0f}), + .dimensions = {1, 6}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param36 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param37 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param38 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param39 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // matrix4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // zero_bias4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param40 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param41 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param42 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param43 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_6_float16 = TestModelManager::get().add("while_fib_unknown_rank_n_6_float16", get_test_model_n_6_float16()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_6_float16_all_tensors_as_inputs() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {2, 4}, + .operands = {{ // cond4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param44 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({6}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f, 2.0f, 3.0f, 5.0f, 8.0f}), + .dimensions = {1, 6}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param36 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param37 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param38 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param39 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // matrix4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // zero_bias4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param40 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param41 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param42 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param43 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_6_float16_all_tensors_as_inputs = TestModelManager::get().add("while_fib_unknown_rank_n_6_float16_all_tensors_as_inputs", get_test_model_n_6_float16_all_tensors_as_inputs()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_6_float16_all_tensors_as_inputs_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4, 6}, + .operands = {{ // cond4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param44 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({6}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f, 2.0f, 3.0f, 5.0f, 8.0f}), + .dimensions = {1, 6}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // fib_init4_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // dummy110 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param155 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {6, 7, 8}, + .outputs = {2}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param36 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param37 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param38 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param39 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // matrix4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // zero_bias4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param40 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param41 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param42 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param43 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_6_float16_all_tensors_as_inputs_all_inputs_as_internal = TestModelManager::get().add("while_fib_unknown_rank_n_6_float16_all_tensors_as_inputs_all_inputs_as_internal", get_test_model_n_6_float16_all_tensors_as_inputs_all_inputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_6_float16_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param44 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({6}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 6}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // dummy111 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param156 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // fib_out8_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f, 2.0f, 3.0f, 5.0f, 8.0f}), + .dimensions = {1, 6}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }, { + .inputs = {5, 6, 7}, + .outputs = {8}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {8} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // i_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param36 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param37 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param38 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param39 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // matrix4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({1.0f, 1.0f}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // zero_bias4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({0.0f}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param40 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<_Float16>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_FLOAT16, + .zeroPoint = 0 + }, { // param41 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param42 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param43 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_6_float16_all_outputs_as_internal = TestModelManager::get().add("while_fib_unknown_rank_n_6_float16_all_outputs_as_internal", get_test_model_n_6_float16_all_outputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_6_quant8() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param44 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({6}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1, 2, 3, 5, 8}), + .dimensions = {1, 6}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param36 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param37 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param38 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param39 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // matrix4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // zero_bias4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param40 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param41 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param42 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param43 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_6_quant8 = TestModelManager::get().add("while_fib_unknown_rank_n_6_quant8", get_test_model_n_6_quant8()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_6_quant8_all_tensors_as_inputs() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {2, 4}, + .operands = {{ // cond4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param44 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({6}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1, 2, 3, 5, 8}), + .dimensions = {1, 6}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param36 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param37 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param38 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param39 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // matrix4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // zero_bias4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param40 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param41 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param42 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param43 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_6_quant8_all_tensors_as_inputs = TestModelManager::get().add("while_fib_unknown_rank_n_6_quant8_all_tensors_as_inputs", get_test_model_n_6_quant8_all_tensors_as_inputs()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_6_quant8_all_tensors_as_inputs_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4, 6}, + .operands = {{ // cond4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param44 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({6}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1, 2, 3, 5, 8}), + .dimensions = {1, 6}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // fib_init4_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // dummy115 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param160 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {6, 7, 8}, + .outputs = {2}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param36 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param37 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param38 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param39 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // matrix4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // zero_bias4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param40 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param41 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param42 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param43 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_6_quant8_all_tensors_as_inputs_all_inputs_as_internal = TestModelManager::get().add("while_fib_unknown_rank_n_6_quant8_all_tensors_as_inputs_all_inputs_as_internal", get_test_model_n_6_quant8_all_tensors_as_inputs_all_inputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_6_quant8_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param44 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({6}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 6}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // dummy116 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param161 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // fib_out8_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1, 2, 3, 5, 8}), + .dimensions = {1, 6}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }, { + .inputs = {5, 6, 7}, + .outputs = {8}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {8} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // i_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param36 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param37 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param38 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param39 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // matrix4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // zero_bias4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param40 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM, + .zeroPoint = 0 + }, { // param41 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param42 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param43 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_6_quant8_all_outputs_as_internal = TestModelManager::get().add("while_fib_unknown_rank_n_6_quant8_all_outputs_as_internal", get_test_model_n_6_quant8_all_outputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_6_quant8_signed() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param44 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({6}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1, 2, 3, 5, 8}), + .dimensions = {1, 6}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param36 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param37 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param38 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param39 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // matrix4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // zero_bias4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param40 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param41 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param42 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param43 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_6_quant8_signed = TestModelManager::get().add("while_fib_unknown_rank_n_6_quant8_signed", get_test_model_n_6_quant8_signed()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_6_quant8_signed_all_tensors_as_inputs() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {2, 4}, + .operands = {{ // cond4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param44 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({6}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1, 2, 3, 5, 8}), + .dimensions = {1, 6}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param36 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param37 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param38 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param39 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // matrix4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // zero_bias4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param40 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param41 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param42 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param43 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_6_quant8_signed_all_tensors_as_inputs = TestModelManager::get().add("while_fib_unknown_rank_n_6_quant8_signed_all_tensors_as_inputs", get_test_model_n_6_quant8_signed_all_tensors_as_inputs()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_6_quant8_signed_all_tensors_as_inputs_all_inputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4, 6}, + .operands = {{ // cond4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param44 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({6}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1, 2, 3, 5, 8}), + .dimensions = {1, 6}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // fib_init4_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // dummy120 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param165 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {6, 7, 8}, + .outputs = {2}, + .type = TestOperationType::ADD + }, { + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }}, + .outputIndexes = {5} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param36 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param37 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param38 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param39 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // matrix4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // zero_bias4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param40 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param41 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param42 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param43 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_6_quant8_signed_all_tensors_as_inputs_all_inputs_as_internal = TestModelManager::get().add("while_fib_unknown_rank_n_6_quant8_signed_all_tensors_as_inputs_all_inputs_as_internal", get_test_model_n_6_quant8_signed_all_tensors_as_inputs_all_inputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_rank + +namespace generated_tests::while_fib_unknown_rank { + +const TestModel& get_test_model_n_6_quant8_signed_all_outputs_as_internal() { + static TestModel model = { + .expectFailure = false, + .expectedMultinomialDistributionTolerance = 0, + .isRelaxed = false, + .main = { + .inputIndexes = {4}, + .operands = {{ // cond4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // body4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<uint32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::SUBGRAPH, + .zeroPoint = 0 + }, { // fib_init4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param44 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n12 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({6}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 6}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // dummy121 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param166 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // fib_out8_new + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1, 2, 3, 5, 8}), + .dimensions = {1, 6}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {0, 1, 2, 3, 4}, + .outputs = {5}, + .type = TestOperationType::WHILE + }, { + .inputs = {5, 6, 7}, + .outputs = {8}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {8} + }, + .minSupportedVersion = TestHalVersion::UNKNOWN, + .referenced = {{ // cond + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i8 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n13 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // out4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<bool8>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_BOOL8, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 2}, + .outputs = {3}, + .type = TestOperationType::LESS + }}, + .outputIndexes = {3} + }, { // body + .inputIndexes = {0, 1, 2}, + .operands = {{ // fib9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 2, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // n14 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_INPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // fib_out9 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // i_out7 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::SUBGRAPH_OUTPUT, + .numberOfConsumers = 0, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param36 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({-2}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param37 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // i_minus_24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param38 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0, 1}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param39 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // slice_start4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // slice_size4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1, 2}), + .dimensions = {2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // last24 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // matrix4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({1, 1}), + .dimensions = {1, 2}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // zero_bias4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param40 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // new_fib4 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int8_t>({}), + .dimensions = {1, 1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, + .numberOfConsumers = 1, + .scale = 1.0f, + .type = TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED, + .zeroPoint = 0 + }, { // param41 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }, { // param42 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({1}), + .dimensions = {1}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::TENSOR_INT32, + .zeroPoint = 0 + }, { // param43 + .channelQuant = {}, + .data = TestBuffer::createFromVector<int32_t>({0}), + .dimensions = {}, + .isIgnored = false, + .lifetime = TestOperandLifeTime::CONSTANT_COPY, + .numberOfConsumers = 1, + .scale = 0.0f, + .type = TestOperandType::INT32, + .zeroPoint = 0 + }}, + .operations = {{ + .inputs = {1, 5, 6}, + .outputs = {7}, + .type = TestOperationType::ADD + }, { + .inputs = {7, 8, 9}, + .outputs = {10}, + .type = TestOperationType::MUL + }, { + .inputs = {0, 10, 11}, + .outputs = {12}, + .type = TestOperationType::SLICE + }, { + .inputs = {12, 13, 14, 15}, + .outputs = {16}, + .type = TestOperationType::FULLY_CONNECTED + }, { + .inputs = {0, 16, 17}, + .outputs = {3}, + .type = TestOperationType::CONCATENATION + }, { + .inputs = {1, 18, 19}, + .outputs = {4}, + .type = TestOperationType::ADD + }}, + .outputIndexes = {3, 4} + }} + }; + return model; +} + +const auto dummy_test_model_n_6_quant8_signed_all_outputs_as_internal = TestModelManager::get().add("while_fib_unknown_rank_n_6_quant8_signed_all_outputs_as_internal", get_test_model_n_6_quant8_signed_all_outputs_as_internal()); + +} // namespace generated_tests::while_fib_unknown_rank + diff --git a/nn/runtime/test/specs/V1_3_cts_only/if_simple_unknown_dimension.mod.py b/nn/runtime/test/specs/V1_3_cts_only/if_simple_unknown_dimension.mod.py new file mode 100644 index 000000000..6c48a32e1 --- /dev/null +++ b/nn/runtime/test/specs/V1_3_cts_only/if_simple_unknown_dimension.mod.py @@ -0,0 +1,48 @@ +# +# Copyright (C) 2020 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +# Model: z = if (x) then (y + 10) else (y - 10) + +input_data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] +output_add = [y + 10 for y in input_data] +output_sub = [y - 10 for y in input_data] + +ValueType = ["TENSOR_FLOAT32", [3, 0]] # Unknown dimension. +ValueTypeKnownShape = ["TENSOR_FLOAT32", [3, 4]] +BoolType = ["TENSOR_BOOL8", [1]] + +def MakeBranchModel(operation_name): + y = Input("y", ValueType) + z = Output("z", ValueType) + return Model().Operation(operation_name, y, [10.0], 0).To(z) + +def Test(x_data, y_data, z_data, name): + x = Input("x", BoolType) + y = Input("y", ValueTypeKnownShape) + z = Output("z", ValueTypeKnownShape) + then_model = MakeBranchModel("ADD") + else_model = MakeBranchModel("SUB") + model = Model().Operation("IF", x, then_model, else_model, y).To(z) + + quant8 = DataTypeConverter("quant8", scale=1.0, zeroPoint=100) + quant8_signed = DataTypeConverter("quant8_signed", scale=1.0, zeroPoint=100) + + example = Example({x: [x_data], y: y_data, z: z_data}, name=name) + example.AddVariations("relaxed", "float16", "int32", quant8, quant8_signed) + example.AddVariations(AllOutputsAsInternalCoverter()) + +Test(x_data=True, y_data=input_data, z_data=output_add, name="true") +Test(x_data=False, y_data=input_data, z_data=output_sub, name="false") diff --git a/nn/runtime/test/specs/V1_3_cts_only/if_simple_unknown_rank.mod.py b/nn/runtime/test/specs/V1_3_cts_only/if_simple_unknown_rank.mod.py new file mode 100644 index 000000000..9ef405d18 --- /dev/null +++ b/nn/runtime/test/specs/V1_3_cts_only/if_simple_unknown_rank.mod.py @@ -0,0 +1,48 @@ +# +# Copyright (C) 2020 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +# Model: z = if (x) then (y + 10) else (y - 10) + +input_data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] +output_add = [y + 10 for y in input_data] +output_sub = [y - 10 for y in input_data] + +ValueType = ["TENSOR_FLOAT32", []] # Unknown rank. +ValueTypeKnownShape = ["TENSOR_FLOAT32", [3, 4]] +BoolType = ["TENSOR_BOOL8", [1]] + +def MakeBranchModel(operation_name): + y = Input("y", ValueType) + z = Output("z", ValueType) + return Model().Operation(operation_name, y, [10.0], 0).To(z) + +def Test(x_data, y_data, z_data, name): + x = Input("x", BoolType) + y = Input("y", ValueTypeKnownShape) + z = Output("z", ValueTypeKnownShape) + then_model = MakeBranchModel("ADD") + else_model = MakeBranchModel("SUB") + model = Model().Operation("IF", x, then_model, else_model, y).To(z) + + quant8 = DataTypeConverter("quant8", scale=1.0, zeroPoint=100) + quant8_signed = DataTypeConverter("quant8_signed", scale=1.0, zeroPoint=100) + + example = Example({x: [x_data], y: y_data, z: z_data}, name=name) + example.AddVariations("relaxed", "float16", "int32", quant8, quant8_signed) + example.AddVariations(AllOutputsAsInternalCoverter()) + +Test(x_data=True, y_data=input_data, z_data=output_add, name="true") +Test(x_data=False, y_data=input_data, z_data=output_sub, name="false") diff --git a/nn/runtime/test/specs/V1_3_cts_only/while_fib_unknown_dimension.mod.py b/nn/runtime/test/specs/V1_3_cts_only/while_fib_unknown_dimension.mod.py new file mode 100644 index 000000000..dce728104 --- /dev/null +++ b/nn/runtime/test/specs/V1_3_cts_only/while_fib_unknown_dimension.mod.py @@ -0,0 +1,132 @@ +# +# Copyright (C) 2020 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +# Model: given n >= 2, produces [fib(1), ..., fib(n)]. +# +# i = 2 +# fib = [1, 1] # shape=[1, i + 1] +# while i < n: +# last2 = fib[0:1, (i - 2):i] # shape=[1, 2] +# new_fib = matmul(last2, [1; 1]) # shape=[1, 1] +# fib = append(fib, new_fib) # shape=[1, i + 2] +# i = i + 1 + +FibType = ["TENSOR_FLOAT32", [1, 0]] # Unknown dimension. +CounterType = ["TENSOR_INT32", [1]] +BoolType = ["TENSOR_BOOL8", [1]] + +Quant8Params = ["TENSOR_QUANT8_ASYMM", 1.0, 0] +Quant8SignedParams = ["TENSOR_QUANT8_ASYMM_SIGNED", 1.0, 0] + +def MakeConditionModel(): + fib = Input("fib", FibType) + i = Input("i", CounterType) + n = Input("n", CounterType) + out = Output("out", BoolType) + model = Model() + model.IdentifyInputs(fib, i, n) + model.IdentifyOutputs(out) + model.Operation("LESS", i, n).To(out) + + quant8 = DataTypeConverter().Identify({ + fib: Quant8Params, + }) + quant8_signed = DataTypeConverter().Identify({ + fib: Quant8SignedParams, + }) + + return SubgraphReference("cond", model), quant8, quant8_signed + +def MakeBodyModel(): + fib = Input("fib", FibType) + i = Input("i", CounterType) + n = Input("n", CounterType) + fib_out = Output("fib_out", FibType) + i_out = Output("i_out", CounterType) + matrix = Parameter("matrix", ["TENSOR_FLOAT32", [1, 2]], [1, 1]) + zero_bias = Parameter("zero_bias", ["TENSOR_FLOAT32", [1]], [0]) + i_minus_2 = Internal("i_minus_2", ["TENSOR_INT32", [1]]) + slice_start = Internal("slice_start", ["TENSOR_INT32", [2]]) + slice_size = Parameter("slice_size", ["TENSOR_INT32", [2]], [1, 2]) + last2 = Internal("last2", ["TENSOR_FLOAT32", [1, 2]]) + new_fib = Internal("new_fib", ["TENSOR_FLOAT32", [1, 1]]) + model = Model() + model.IdentifyInputs(fib, i, n) + model.IdentifyOutputs(fib_out, i_out) + model.Operation("ADD", i, [-2], 0).To(i_minus_2) + model.Operation("MUL", i_minus_2, [0, 1], 0).To(slice_start) + model.Operation("SLICE", fib, slice_start, slice_size).To(last2) + model.Operation("FULLY_CONNECTED", last2, matrix, zero_bias, 0).To(new_fib) + model.Operation("CONCATENATION", fib, new_fib, 1).To(fib_out) + model.Operation("ADD", i, [1], 0).To(i_out) + + quant8 = DataTypeConverter().Identify({ + fib_out: Quant8Params, + fib: Quant8Params, + last2: Quant8Params, + matrix: Quant8Params, + new_fib: Quant8Params, + zero_bias: ["TENSOR_INT32", 1.0, 0], + }) + quant8_signed = DataTypeConverter().Identify({ + fib_out: Quant8SignedParams, + fib: Quant8SignedParams, + last2: Quant8SignedParams, + matrix: Quant8SignedParams, + new_fib: Quant8SignedParams, + zero_bias: ["TENSOR_INT32", 1.0, 0], + }) + + return SubgraphReference("body", model), quant8, quant8_signed + +def Test(n_data, fib_data, add_unused_output=False): + n = Input("n", CounterType) + fib_out = Output("fib_out", ["TENSOR_FLOAT32", [1, len(fib_data)]]) # Known dimensions. + cond, cond_quant8, cond_quant8_signed = MakeConditionModel() + body, body_quant8, body_quant8_signed = MakeBodyModel() + fib_init = Parameter("fib_init", ["TENSOR_FLOAT32", [1, 2]], [1, 1]) + i_init = [2] + outputs = [fib_out] + if add_unused_output: + i_out = Internal("i_out", CounterType) # Unused. + outputs.append(i_out) + model = Model().Operation("WHILE", cond, body, fib_init, i_init, n).To(outputs) + + quant8 = DataTypeConverter().Identify({ + fib_init: Quant8Params, + fib_out: Quant8Params, + cond: cond_quant8, + body: body_quant8, + }) + quant8_signed = DataTypeConverter().Identify({ + fib_init: Quant8SignedParams, + fib_out: Quant8SignedParams, + cond: cond_quant8_signed, + body: body_quant8_signed, + }) + + name = "n_{}".format(n_data) + if add_unused_output: + name += "_unused_output" + example = Example({n: [n_data], fib_out: fib_data}, name=name) + example.AddVariations("relaxed", "float16", quant8, quant8_signed) + example.AddVariations(AllOutputsAsInternalCoverter()) + +Test(n_data=2, fib_data=[1, 1], add_unused_output=True) +Test(n_data=3, fib_data=[1, 1, 2], add_unused_output=True) +Test(n_data=4, fib_data=[1, 1, 2, 3], add_unused_output=True) +Test(n_data=5, fib_data=[1, 1, 2, 3, 5]) +Test(n_data=6, fib_data=[1, 1, 2, 3, 5, 8]) diff --git a/nn/runtime/test/specs/V1_3_cts_only/while_fib_unknown_rank.mod.py b/nn/runtime/test/specs/V1_3_cts_only/while_fib_unknown_rank.mod.py new file mode 100644 index 000000000..84524201f --- /dev/null +++ b/nn/runtime/test/specs/V1_3_cts_only/while_fib_unknown_rank.mod.py @@ -0,0 +1,132 @@ +# +# Copyright (C) 2020 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +# Model: given n >= 2, produces [fib(1), ..., fib(n)]. +# +# i = 2 +# fib = [1, 1] # shape=[1, i + 1] +# while i < n: +# last2 = fib[0:1, (i - 2):i] # shape=[1, 2] +# new_fib = matmul(last2, [1; 1]) # shape=[1, 1] +# fib = append(fib, new_fib) # shape=[1, i + 2] +# i = i + 1 + +FibType = ["TENSOR_FLOAT32", []] # Unknown rank. +CounterType = ["TENSOR_INT32", [1]] +BoolType = ["TENSOR_BOOL8", [1]] + +Quant8Params = ["TENSOR_QUANT8_ASYMM", 1.0, 0] +Quant8SignedParams = ["TENSOR_QUANT8_ASYMM_SIGNED", 1.0, 0] + +def MakeConditionModel(): + fib = Input("fib", FibType) + i = Input("i", CounterType) + n = Input("n", CounterType) + out = Output("out", BoolType) + model = Model() + model.IdentifyInputs(fib, i, n) + model.IdentifyOutputs(out) + model.Operation("LESS", i, n).To(out) + + quant8 = DataTypeConverter().Identify({ + fib: Quant8Params, + }) + quant8_signed = DataTypeConverter().Identify({ + fib: Quant8SignedParams, + }) + + return SubgraphReference("cond", model), quant8, quant8_signed + +def MakeBodyModel(): + fib = Input("fib", FibType) + i = Input("i", CounterType) + n = Input("n", CounterType) + fib_out = Output("fib_out", FibType) + i_out = Output("i_out", CounterType) + matrix = Parameter("matrix", ["TENSOR_FLOAT32", [1, 2]], [1, 1]) + zero_bias = Parameter("zero_bias", ["TENSOR_FLOAT32", [1]], [0]) + i_minus_2 = Internal("i_minus_2", ["TENSOR_INT32", [1]]) + slice_start = Internal("slice_start", ["TENSOR_INT32", [2]]) + slice_size = Parameter("slice_size", ["TENSOR_INT32", [2]], [1, 2]) + last2 = Internal("last2", ["TENSOR_FLOAT32", [1, 2]]) + new_fib = Internal("new_fib", ["TENSOR_FLOAT32", [1, 1]]) + model = Model() + model.IdentifyInputs(fib, i, n) + model.IdentifyOutputs(fib_out, i_out) + model.Operation("ADD", i, [-2], 0).To(i_minus_2) + model.Operation("MUL", i_minus_2, [0, 1], 0).To(slice_start) + model.Operation("SLICE", fib, slice_start, slice_size).To(last2) + model.Operation("FULLY_CONNECTED", last2, matrix, zero_bias, 0).To(new_fib) + model.Operation("CONCATENATION", fib, new_fib, 1).To(fib_out) + model.Operation("ADD", i, [1], 0).To(i_out) + + quant8 = DataTypeConverter().Identify({ + fib_out: Quant8Params, + fib: Quant8Params, + last2: Quant8Params, + matrix: Quant8Params, + new_fib: Quant8Params, + zero_bias: ["TENSOR_INT32", 1.0, 0], + }) + quant8_signed = DataTypeConverter().Identify({ + fib_out: Quant8SignedParams, + fib: Quant8SignedParams, + last2: Quant8SignedParams, + matrix: Quant8SignedParams, + new_fib: Quant8SignedParams, + zero_bias: ["TENSOR_INT32", 1.0, 0], + }) + + return SubgraphReference("body", model), quant8, quant8_signed + +def Test(n_data, fib_data, add_unused_output=False): + n = Input("n", CounterType) + fib_out = Output("fib_out", ["TENSOR_FLOAT32", [1, len(fib_data)]]) # Known dimensions. + cond, cond_quant8, cond_quant8_signed = MakeConditionModel() + body, body_quant8, body_quant8_signed = MakeBodyModel() + fib_init = Parameter("fib_init", ["TENSOR_FLOAT32", [1, 2]], [1, 1]) + i_init = [2] + outputs = [fib_out] + if add_unused_output: + i_out = Internal("i_out", CounterType) # Unused. + outputs.append(i_out) + model = Model().Operation("WHILE", cond, body, fib_init, i_init, n).To(outputs) + + quant8 = DataTypeConverter().Identify({ + fib_init: Quant8Params, + fib_out: Quant8Params, + cond: cond_quant8, + body: body_quant8, + }) + quant8_signed = DataTypeConverter().Identify({ + fib_init: Quant8SignedParams, + fib_out: Quant8SignedParams, + cond: cond_quant8_signed, + body: body_quant8_signed, + }) + + name = "n_{}".format(n_data) + if add_unused_output: + name += "_unused_output" + example = Example({n: [n_data], fib_out: fib_data}, name=name) + example.AddVariations("relaxed", "float16", quant8, quant8_signed) + example.AddVariations(AllOutputsAsInternalCoverter()) + +Test(n_data=2, fib_data=[1, 1], add_unused_output=True) +Test(n_data=3, fib_data=[1, 1, 2], add_unused_output=True) +Test(n_data=4, fib_data=[1, 1, 2, 3], add_unused_output=True) +Test(n_data=5, fib_data=[1, 1, 2, 3, 5]) +Test(n_data=6, fib_data=[1, 1, 2, 3, 5, 8]) |