| // |
| // This confidential and proprietary software may be used only as |
| // authorised by a licensing agreement from ARM Limited |
| // (C) COPYRIGHT 2020-2024 ARM Limited |
| // ALL RIGHTS RESERVED |
| // The entire notice above must be reproduced on all authorised |
| // copies and copies may only be made to the extent permitted |
| // by a licensing agreement from ARM Limited. |
| |
| ERROR_IF(tensor_size(shape1) != tensor_size(shape)); |
| |
| for_each(index in shape) { |
| // Calculate flattened index for the output location (index) |
| size_t offset = tensor_index_to_offset(shape, index); |
| // Now convert to the location in the input |
| shape_t tmp_index = tensor_offset_to_index(shape1, offset); |
| |
| // Now read/write the value |
| in_out_t val = tensor_read<in_out_t>(input1, shape1, tmp_index); |
| tensor_write<in_out_t>(output, shape, index, val); |
| } |