// // 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. for_each(index in shape) { in_t in = tensor_read(input, shape, index); out_t out; if (out_t == bool_t) { out = (in != 0) ? true : false; } else if (is_floating_point()) { // Conversion to float cases if (in_t == bool_t) { out = (in) ? 1.0 : 0.0; } if (is_saturating_float_type()) { out = round_to_nearest_float_saturating(in); } else { out = round_to_nearest_float_nonsaturating(in); } } else { // Conversion to integer cases if (in_t == bool_t) { out = (in) ? 1 : 0; } else if (is_floating_point()) { out = truncate(apply_clip_s(round_to_nearest_int(in), minimum_s(), maximum_s())); } else if (sizeof() >= sizeof()) { out = sign_extend(in); } else { out = truncate(in); } } tensor_write(output, shape, index, out); }