diff options
author | Giorgio Arena <giorgio.arena@arm.com> | 2018-08-24 14:44:08 +0100 |
---|---|---|
committer | Anthony Barbier <anthony.barbier@arm.com> | 2018-11-02 16:54:54 +0000 |
commit | e3d24cee3688b2ddffd5858aba4904bf51398f08 (patch) | |
tree | 5f8d66c3b34ce5cd64afd5a25cc737d9910a03c8 /tests/validation/NEON/Transpose.cpp | |
parent | 427bbbf939a37150fd6768c29c9753771806dab3 (diff) | |
download | ComputeLibrary-e3d24cee3688b2ddffd5858aba4904bf51398f08.tar.gz |
COMPMID-708 Fix AccessWindowTranspose
Change-Id: I68f65b6dea7889d71b4a10021f59e6f0ab82903b
Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/145590
Tested-by: Jenkins <bsgcomp@arm.com>
Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
Diffstat (limited to 'tests/validation/NEON/Transpose.cpp')
-rw-r--r-- | tests/validation/NEON/Transpose.cpp | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/tests/validation/NEON/Transpose.cpp b/tests/validation/NEON/Transpose.cpp index f2ef7162a2..f7c52809fc 100644 --- a/tests/validation/NEON/Transpose.cpp +++ b/tests/validation/NEON/Transpose.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 ARM Limited. + * Copyright (c) 2017-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -48,19 +48,19 @@ TEST_SUITE(Transpose) DATA_TEST_CASE(Validate, framework::DatasetMode::ALL, zip(zip( framework::dataset::make("InputInfo", { TensorInfo(TensorShape(21U, 13U), 1, DataType::U8), // Input not a multiple of 8 TensorInfo(TensorShape(21U, 13U), 1, DataType::U16), // Invalid shape - TensorInfo(TensorShape(20U, 13U), 1, DataType::U32), + TensorInfo(TensorShape(20U, 13U), 1, DataType::U32), // Window shrink TensorInfo(TensorShape(20U, 13U), 1, DataType::U8), // Wrong data type - TensorInfo(TensorShape(20U, 13U), 1, DataType::U16), - TensorInfo(TensorShape(20U, 13U), 1, DataType::U32), + TensorInfo(TensorShape(20U, 16U), 1, DataType::U16), + TensorInfo(TensorShape(20U, 16U), 1, DataType::U32), }), framework::dataset::make("OutputInfo",{ TensorInfo(TensorShape(13U, 21U), 1, DataType::U8), TensorInfo(TensorShape(21U, 13U), 1, DataType::U16), TensorInfo(TensorShape(13U, 20U), 1, DataType::U32), TensorInfo(TensorShape(31U, 20U), 1, DataType::U16), - TensorInfo(TensorShape(13U, 20U), 1, DataType::U16), - TensorInfo(TensorShape(13U, 20U), 1, DataType::U32), + TensorInfo(TensorShape(16U, 20U), 1, DataType::U16), + TensorInfo(TensorShape(16U, 20U), 1, DataType::U32), })), - framework::dataset::make("Expected", { true, false, true, false, true, true })), + framework::dataset::make("Expected", { false, false, false, false, true, true })), a_info, output_info, expected) { // Lock tensors @@ -90,9 +90,17 @@ DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(concat(datase validate(dst.info()->valid_region(), valid_region); // Validate padding - const PaddingSize padding(0, 0); - validate(src.info()->padding(), padding); - validate(dst.info()->padding(), padding); + const unsigned int num_elems_processed_per_iteration_x = 1; + const unsigned int num_elems_processed_per_iteration_y = std::max(4, static_cast<int>(8 / src.info()->element_size())); + const unsigned int max_in_x = ceil_to_multiple(shape[0], num_elems_processed_per_iteration_x); + const unsigned int max_in_y = ceil_to_multiple(shape[1], num_elems_processed_per_iteration_y); + const unsigned int max_out_x = ceil_to_multiple(output_shape[0], num_elems_processed_per_iteration_y); + const unsigned int max_out_y = ceil_to_multiple(output_shape[1], num_elems_processed_per_iteration_x); + + const PaddingSize in_padding(0, max_in_x - shape[0], max_in_y - shape[1], 0); + const PaddingSize out_padding(0, max_out_x - output_shape[0], max_out_y - output_shape[1], 0); + validate(src.info()->padding(), in_padding); + validate(dst.info()->padding(), out_padding); } template <typename T> |