From ec33a91ec1557b78b2d01975ec4c5eaf24aa058c Mon Sep 17 00:00:00 2001 From: Francis Murtagh Date: Tue, 5 Nov 2019 14:26:23 +0000 Subject: IVGCVSW-4038 Convert Strided_Slice Shrink_Axis_Mask Parameter to ACL format * Add conversion method to reverse bits in Shrink_Axis_Mask * Add Unit tests for Neon, CL and Reference backends * Fix supportedness of constant layer which is causing error in DeepSpeech Uint8 * Also convert the Begin_Mask and End_Mask Change-Id: I448b083c3463558e8fb5204923ab554cd43264ba Signed-off-by: Francis Murtagh --- src/backends/backendsCommon/WorkloadUtils.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src/backends/backendsCommon/WorkloadUtils.cpp') diff --git a/src/backends/backendsCommon/WorkloadUtils.cpp b/src/backends/backendsCommon/WorkloadUtils.cpp index 9e008ca441..385d970dac 100644 --- a/src/backends/backendsCommon/WorkloadUtils.cpp +++ b/src/backends/backendsCommon/WorkloadUtils.cpp @@ -184,4 +184,18 @@ armnn::ConstTensor ConvertWeightTensorFromArmnnToAcl(const ConstCpuTensorHandle* return weightPermuted; } +int32_t ConvertMaskToACLFormat(int32_t mask, int32_t numDim) +{ + int32_t reversedMask = 0; + for (unsigned int i = 0; i < boost::numeric_cast(numDim); ++i) + { + // Check if bit set in mask for each dimension + int32_t bit = (mask & 1 << i) != 0; + // Increment the new mask with the bits reversed + reversedMask += (bit << std::max(numDim-(boost::numeric_cast(i)+1), 0)); + } + + return reversedMask; +} + } // namespace armnn -- cgit v1.2.1