| 253 | } |
| 254 | |
| 255 | void CpuArithmeticKernel::configure_common(const ITensorInfo *src0, const ITensorInfo *src1, ITensorInfo *dst) |
| 256 | { |
| 257 | ARM_COMPUTE_ERROR_ON_NULLPTR(src0, src1, dst); |
| 258 | |
| 259 | const auto *uk = CpuArithmeticKernel::get_implementation( |
| 260 | ElementwiseDataTypeISASelectorData{src0->data_type(), CPUInfo::get().get_isa(), static_cast<int>(_op)}); |
| 261 | |
| 262 | ARM_COMPUTE_ERROR_ON(uk == nullptr || uk->ukernel == nullptr); |
| 263 | |
| 264 | _run_method = uk->ukernel; |
| 265 | _name = std::string("CpuArithmeticKernel").append("/").append(uk->name); |
| 266 | |
| 267 | // If any of shapes is dynamic, expect a configured window and dst at run-time. |
| 268 | if (src0->is_dynamic() || src1->is_dynamic()) |
| 269 | { |
| 270 | return; |
| 271 | } |
| 272 | |
| 273 | auto shape_and_window = compute_output_shape_and_window(src0->tensor_shape(), src1->tensor_shape()); |
| 274 | auto_init_if_empty(*dst, shape_and_window.first, 1, src0->data_type()); |
| 275 | ICpuKernel::configure(shape_and_window.second); |
| 276 | } |
| 277 | |
| 278 | void CpuComparisonKernel::configure_common(const ITensorInfo *src0, const ITensorInfo *src1, ITensorInfo *dst) |
| 279 | { |
nothing calls this directly
no test coverage detected