53 const circle::Tensor *input = runtime_kernel.
inputs[inputTensorIdx];
54 const circle::Tensor *
size = runtime_kernel.
inputs[sizeTensorIdx];
55 const circle::Tensor *axis = runtime_kernel.
inputs[axisTensorIdx];
56 const circle::Tensor *output = runtime_kernel.
outputs[outputTensorIdx];
58 assert(input !=
nullptr);
59 assert(axis !=
nullptr);
60 assert(
size !=
nullptr);
61 assert(output !=
nullptr);
63 status = utils::checkCondition(output->type() == input->type());
68 for (uint32_t i = 1; i < runtime_kernel.
outputs_num; ++i)
70 status = utils::checkCondition(output->type() == runtime_kernel.
outputs[i]->type());
75 status = utils::checkCondition(axis->type() == circle::TensorType_INT32);
79 status = utils::checkCondition(
size->type() == circle::TensorType_INT32);
87 status = utils::checkCondition(
OMRuntimeShape(axis).flatSize() == 1);
93 auto *axis_data =
reinterpret_cast<int32_t *
>(runtime_kernel.
inputs_data[axisTensorIdx]);
94 status = utils::checkCondition(axis_data !=
nullptr);
98 int32_t axis_value = axis_data[0];
106 status = utils::checkCondition(axis_value <= input_shape.
dimensionsCount() and axis_value >= 0);