90 Tensor::element_type(kernel.
input2()));
92 Tensor::element_type(kernel.
input2()));
94 if (Tensor::element_type(kernel.
input1()) == DataType::S16)
97 Tensor::zero_points(kernel.
input2()).size() == 1);
99 Tensor::zero_point(kernel.
input2()) == 0 &&
100 Tensor::zero_point(kernel.
output()) == 0);
109 const auto *options = cur_op->builtin_options_as_MulOptions();
120 const auto type = Tensor::element_type(kernel.
input1());
124 case DataType::FLOAT32:
126 auto tiso_func = luci_interpreter_pal::Mul<float>;
127 auto broadcast_tiso_func = luci_interpreter_pal::BroadcastMul4DSlow<float>;
130 kernels::evalTISOInplaceKernel<float>(tiso_func, broadcast_tiso_func, &kernel, options,
131 std::move(input_shape1), std::move(input_shape2),
137 kernels::evalTISOKernel<float>(tiso_func, broadcast_tiso_func, &kernel, &kernel_data,
138 options, std::move(input_shape1), std::move(input_shape2),
146 auto tiso_func = luci_interpreter_pal::Mul<int64_t>;
147 auto broadcast_tiso_func = luci_interpreter_pal::BroadcastMul4DSlow<int64_t>;
150 kernels::evalTISOInplaceKernel<int64_t>(tiso_func, broadcast_tiso_func, &kernel, options,
151 std::move(input_shape1), std::move(input_shape2),
157 kernels::evalTISOKernel<int64_t>(tiso_func, broadcast_tiso_func, &kernel, &kernel_data,
158 options, std::move(input_shape1), std::move(input_shape2),
165 auto tiso_func = luci_interpreter_pal::Mul<int32_t>;
166 auto broadcast_tiso_func = luci_interpreter_pal::BroadcastMul4DSlow<int32_t>;
169 kernels::evalTISOInplaceKernel<int32_t>(tiso_func, broadcast_tiso_func, &kernel, options,
170 std::move(input_shape1), std::move(input_shape2),
176 kernels::evalTISOKernel<int32_t>(tiso_func, broadcast_tiso_func, &kernel, &kernel_data,
177 options, std::move(input_shape1), std::move(input_shape2),
186 evalQuantized(kernel.
input1(), kernel.
input2(), kernel.
output(), options, runtime_graph,
192 assert(
false &&
"Unsupported type.");