diff options
Diffstat (limited to 'src/core/NEON')
-rw-r--r-- | src/core/NEON/kernels/NENonLinearFilterKernel.cpp | 7 | ||||
-rw-r--r-- | src/core/NEON/kernels/NENormalizationLayerKernel.cpp | 5 | ||||
-rw-r--r-- | src/core/NEON/kernels/arm_gemm/merges/a64_merge_int32_12x8.hpp | 2 |
3 files changed, 8 insertions, 6 deletions
diff --git a/src/core/NEON/kernels/NENonLinearFilterKernel.cpp b/src/core/NEON/kernels/NENonLinearFilterKernel.cpp index a6e2b00302..52dbe26f42 100644 --- a/src/core/NEON/kernels/NENonLinearFilterKernel.cpp +++ b/src/core/NEON/kernels/NENonLinearFilterKernel.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2017 ARM Limited. + * Copyright (c) 2016-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -887,9 +887,12 @@ void NENonLinearFilterKernel::non_linear_filter_generic(const Window &win) input_ptrs[k_row_half + i] = _input->buffer() + _input->info()->offset_element_in_bytes(Coordinates(-k_col_half, i)); } + std::array<uint8_t, mask_size> vals{ {} }; + execute_window_loop(win, [&](const Coordinates & id) { - std::array<uint8_t, mask_size> vals{ {} }; + // Clear array + std::fill(std::begin(vals), std::end(vals), 0); size_t v = 0; size_t m = 0; diff --git a/src/core/NEON/kernels/NENormalizationLayerKernel.cpp b/src/core/NEON/kernels/NENormalizationLayerKernel.cpp index fe6b69c455..febc75944f 100644 --- a/src/core/NEON/kernels/NENormalizationLayerKernel.cpp +++ b/src/core/NEON/kernels/NENormalizationLayerKernel.cpp @@ -195,7 +195,6 @@ void NENormalizationLayerKernel::normalize_float(const Window &window) // We account padding across X only and we iterate over rows const int min_left = (dim == 2) ? 0 : -static_cast<int>(border_size().left); const int max_right = (dim == 2) ? total_size : total_size + border_size().left; - const int min_top = 0; const int max_bottom = _input->info()->dimension(dim_y) - 1; if(dt == DataType::F32) @@ -209,7 +208,7 @@ void NENormalizationLayerKernel::normalize_float(const Window &window) // Get range to normalize const int current_row = do_2D_norm ? id[dim_y] : 0; const int current_slice = id[dim]; - const int first_row = do_2D_norm ? std::max(current_row - radius, min_top) : 0; + const int first_row = do_2D_norm ? std::max(current_row - radius, 0) : 0; const int last_row = do_2D_norm ? std::min(current_row + radius, max_bottom) : 0; const int first_slice = std::max(current_slice - radius, min_left); const int last_slice = std::min(current_slice + radius, max_right); @@ -246,7 +245,7 @@ void NENormalizationLayerKernel::normalize_float(const Window &window) // Get range to normalize const int current_row = do_2D_norm ? id[dim_y] : 0; const int current_slice = id[dim]; - const int first_row = do_2D_norm ? std::max(current_row - radius, min_top) : 0; + const int first_row = do_2D_norm ? std::max(current_row - radius, 0) : 0; const int last_row = do_2D_norm ? std::min(current_row + radius, max_bottom) : 0; const int first_slice = std::max(current_slice - radius, min_left); const int last_slice = std::min(current_slice + radius, max_right); diff --git a/src/core/NEON/kernels/arm_gemm/merges/a64_merge_int32_12x8.hpp b/src/core/NEON/kernels/arm_gemm/merges/a64_merge_int32_12x8.hpp index ee32ce7630..35d4cc5d73 100644 --- a/src/core/NEON/kernels/arm_gemm/merges/a64_merge_int32_12x8.hpp +++ b/src/core/NEON/kernels/arm_gemm/merges/a64_merge_int32_12x8.hpp @@ -273,7 +273,7 @@ inline void MergeResults<12, 8, false>(int32_t *out, const int32_t *in, const in template<> inline void MergeResults<12, 8>(uint32_t *out, const uint32_t *in, const int ldout, const int y0, const int ymax, const int x0, const int xmax, const uint32_t alpha, const uint32_t beta) { // Since the above code uses only MUL and MLA instructions discard the "unsignedness" and proceed safely. - MergeResults<12, 8>(reinterpret_cast<int32_t*>(out), reinterpret_cast<const int32_t*>(in), ldout, y0, ymax, x0, xmax, static_cast<const int32_t>(alpha), static_cast<const int32_t>(beta)); + MergeResults<12, 8>(reinterpret_cast<int32_t*>(out), reinterpret_cast<const int32_t*>(in), ldout, y0, ymax, x0, xmax, static_cast<int32_t>(alpha), static_cast<int32_t>(beta)); } #endif // __aarch64__ |