51 const circle::Tensor *input;
52 const circle::Tensor *perm;
53 const circle::Tensor *output;
64 status = runtime_kernel.
readKernel(op_index, runtime_context);
68 input = runtime_kernel.
inputs[kInputTensorIdx];
69 perm = runtime_kernel.
inputs[kPermTensorIdx];
70 output = runtime_kernel.
outputs[kOutputTensorIdx];
71 assert(input !=
nullptr);
72 assert(perm !=
nullptr);
73 assert(output !=
nullptr);
75 status = runtime_kernel.
getDataFromStorage(op_index, runtime_storage, runtime_context);
79 input_data = runtime_kernel.
inputs_data[kInputTensorIdx];
80 perm_data = runtime_kernel.
inputs_data[kPermTensorIdx];
81 output_data = runtime_kernel.
outputs_data[kOutputTensorIdx];
82 assert(input_data !=
nullptr);
83 assert(perm_data !=
nullptr);
84 assert(output_data !=
nullptr);
92 assert(
reinterpret_cast<int32_t *
>(perm_data)[idx] >= 0 and
98 params.
perm[i] =
reinterpret_cast<int32_t *
>(perm_data)[i];
100 switch (input->type())
103 case circle::TensorType_FLOAT32:
104 status = pal::Transpose<float>(params, input_shape,
reinterpret_cast<float *
>(input_data),
109 case circle::TensorType_INT8:
111 status = pal::Transpose<int8_t>(params, input_shape,
reinterpret_cast<int8_t *
>(input_data),
119 assert(
false &&
"Unsupported type.");