| 57 | } |
| 58 | |
| 59 | void NEBitwiseNotKernel::configure(const ITensor *input, ITensor *output) |
| 60 | { |
| 61 | ARM_COMPUTE_ERROR_ON_NULLPTR(input, output); |
| 62 | |
| 63 | set_shape_if_empty(*output->info(), input->info()->tensor_shape()); |
| 64 | |
| 65 | set_format_if_unknown(*output->info(), Format::U8); |
| 66 | set_format_if_unknown(*input->info(), Format::U8); |
| 67 | |
| 68 | ARM_COMPUTE_ERROR_ON_SIZE_UNSUPPORTED(input->info(), output->info()); |
| 69 | ARM_COMPUTE_ERROR_ON_MISMATCHING_SHAPES(input, output); |
| 70 | ARM_COMPUTE_ERROR_ON_DATA_TYPE_CHANNEL_NOT_IN(input, 1, DataType::U8); |
| 71 | ARM_COMPUTE_ERROR_ON_DATA_TYPE_CHANNEL_NOT_IN(output, 1, DataType::U8); |
| 72 | ARM_COMPUTE_ERROR_ON_MISMATCHING_DATA_TYPES(input, output); |
| 73 | |
| 74 | _input = input; |
| 75 | _output = output; |
| 76 | |
| 77 | constexpr unsigned int num_elems_processed_per_iteration = 16; |
| 78 | |
| 79 | // Configure kernel window |
| 80 | Window win = calculate_max_window(*input->info(), Steps(num_elems_processed_per_iteration)); |
| 81 | AccessWindowHorizontal output_access(output->info(), 0, num_elems_processed_per_iteration); |
| 82 | update_window_and_padding(win, AccessWindowHorizontal(input->info(), 0, num_elems_processed_per_iteration), |
| 83 | output_access); |
| 84 | |
| 85 | INEKernel::configure(win); |
| 86 | } |
| 87 | |
| 88 | void NEBitwiseNotKernel::run(const Window &window, const ThreadInfo &info) |
| 89 | { |
nothing calls this directly
no test coverage detected