48 select_func(input_cond_shape, input_cond_data, input_x_shape, input_x_data, input_y_shape,
66 const circle::Tensor *input_cond;
67 const circle::Tensor *input_x;
68 const circle::Tensor *input_y;
69 const circle::Tensor *output;
71 uint8_t *input_cond_data;
72 uint8_t *input_x_data;
73 uint8_t *input_y_data;
81 runtime_kernel.
readKernel(op_index, runtime_context);
83 input_cond = runtime_kernel.
inputs[inputCond];
84 input_x = runtime_kernel.
inputs[inputX];
85 input_y = runtime_kernel.
inputs[inputY];
86 output = runtime_kernel.
outputs[outputIndex];
88 assert(input_cond !=
nullptr);
89 assert(input_x !=
nullptr);
90 assert(input_y !=
nullptr);
91 assert(output !=
nullptr);
93 status = runtime_kernel.
getDataFromStorage(op_index, runtime_storage, runtime_context);
97 input_cond_data = runtime_kernel.
inputs_data[inputCond];
102 assert(input_cond_data !=
nullptr);
103 assert(input_x_data !=
nullptr);
104 assert(input_y_data !=
nullptr);
105 assert(output_data !=
nullptr);
109 assert(input_cond_shape.
flatSize() > 0);
114 switch (input_x->type())
117 case circle::TensorType_FLOAT32:
119 CallSelect<float>(input_cond_shape, core::utils::castInputData<bool>(input_cond_data),
120 input_x_shape, core::utils::castInputData<float>(input_x_data),
121 input_y_shape, core::utils::castInputData<float>(input_y_data),
122 output_shape, core::utils::castOutputData<float>(output_data));
129 assert(
false &&
"Unsupported type.");