aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/core/CL/kernels/CLPermuteKernel.cpp6
-rw-r--r--src/core/NEON/kernels/NEPermuteKernel.cpp7
2 files changed, 7 insertions, 6 deletions
diff --git a/src/core/CL/kernels/CLPermuteKernel.cpp b/src/core/CL/kernels/CLPermuteKernel.cpp
index c6f0f4bc55..a9a2c5c97a 100644
--- a/src/core/CL/kernels/CLPermuteKernel.cpp
+++ b/src/core/CL/kernels/CLPermuteKernel.cpp
@@ -93,17 +93,17 @@ void CLPermuteKernel::configure(const ICLTensor *input, ICLTensor *output, const
build_opts.emplace("-DDEPTH_IN=" + support::cpp11::to_string(input->info()->dimension(2)));
// Run [2, 0, 1] permute
- if(_perm[0] == 2 && _perm[1] == 0 && _perm[2] == 1)
+ if(_perm == PermutationVector{ 2U, 0U, 1U })
{
_kernel = static_cast<cl::Kernel>(CLKernelLibrary::get().create_kernel("permute_201", build_opts));
}
// Run [1, 2, 0] permute
- else if(_perm[0] == 1 && _perm[1] == 2 && _perm[2] == 0)
+ else if(_perm == PermutationVector{ 1U, 2U, 0U })
{
_kernel = static_cast<cl::Kernel>(CLKernelLibrary::get().create_kernel("permute_120", build_opts));
}
// Run [3, 2, 0, 1] permute
- else if(_perm[0] == 3 && _perm[1] == 2 && _perm[2] == 0 && _perm[3] == 1)
+ else if(_perm == PermutationVector{ 3U, 2U, 0U, 1U })
{
_kernel = static_cast<cl::Kernel>(CLKernelLibrary::get().create_kernel("permute_3201", build_opts));
}
diff --git a/src/core/NEON/kernels/NEPermuteKernel.cpp b/src/core/NEON/kernels/NEPermuteKernel.cpp
index 8d3fd88329..29e6d501a6 100644
--- a/src/core/NEON/kernels/NEPermuteKernel.cpp
+++ b/src/core/NEON/kernels/NEPermuteKernel.cpp
@@ -50,7 +50,8 @@ Status validate_arguments(const ITensorInfo *input, const ITensorInfo *output, c
DataType::U16, DataType::S16,
DataType::U32, DataType::S32,
DataType::F16, DataType::F32);
- ARM_COMPUTE_RETURN_ERROR_ON_MSG((perm.num_dimensions() == 3 && !(perm[0] == 2 && perm[1] == 0 && perm[2] == 1) && !(perm[0] == 1 && perm[1] == 2 && perm[2] == 0)),
+ ARM_COMPUTE_RETURN_ERROR_ON_MSG((perm != PermutationVector{ 2U, 0U, 1U })
+ && (perm != PermutationVector{ 1U, 2U, 0U }),
"Only [2, 0, 1] and [1, 2, 0] permutation is supported");
const TensorShape output_shape = misc::shape_calculator::compute_permutation_output_shape(*input, perm);
@@ -89,7 +90,7 @@ void NEPermuteKernel::run_permute(const Window &window)
Iterator out(_output, window_out);
// CHW -> HWC
- if((_perm.num_dimensions() == 3) && (_perm[0] == 2) && (_perm[1] == 0) && (_perm[2] == 1))
+ if(_perm == PermutationVector{ 2U, 0U, 1U })
{
const int in_row_stride = _input->info()->strides_in_bytes().y() / sizeof(T);
const int in_channel_stride = _input->info()->strides_in_bytes().z() / sizeof(T);
@@ -116,7 +117,7 @@ void NEPermuteKernel::run_permute(const Window &window)
in, out);
}
// HWC -> CHW
- else if((_perm.num_dimensions() == 3) && (_perm[0] == 1) && (_perm[1] == 2) && (_perm[2] == 0))
+ else if(_perm == PermutationVector{ 1U, 2U, 0U })
{
const int in_col_stride = _input->info()->strides_in_bytes().y() / sizeof(T);
const int in_row_stride = _input->info()->strides_in_bytes().z() / sizeof(T);