KleidiCV Coverage Report


Directory: ./
File: kleidicv/src/arithmetics/multiply_sme.cpp
Date: 2025-11-25 17:23:32
Exec Total Coverage
Lines: 3 3 100.0%
Functions: 5 5 100.0%
Branches: 0 0 -%

Line Branch Exec Source
1 // SPDX-FileCopyrightText: 2025 Arm Limited and/or its affiliates <open-source-office@arm.com>
2 //
3 // SPDX-License-Identifier: Apache-2.0
4
5 #include "multiply_sc.h"
6
7 namespace kleidicv::sme {
8
9 template <typename T>
10 KLEIDICV_LOCALLY_STREAMING KLEIDICV_TARGET_FN_ATTRS kleidicv_error_t
11 359 saturating_multiply(const T *src_a, size_t src_a_stride, const T *src_b,
12 size_t src_b_stride, T *dst, size_t dst_stride,
13 size_t width, size_t height, double scale) {
14 718 return saturating_multiply_sc<T>(src_a, src_a_stride, src_b, src_b_stride,
15 359 dst, dst_stride, width, height, scale);
16 }
17
18 #define KLEIDICV_INSTANTIATE_TEMPLATE(type) \
19 template KLEIDICV_TARGET_FN_ATTRS kleidicv_error_t \
20 saturating_multiply<type>(const type *src_a, size_t src_a_stride, \
21 const type *src_b, size_t src_b_stride, type *dst, \
22 size_t dst_stride, size_t width, size_t height, \
23 double scale)
24
25 KLEIDICV_INSTANTIATE_TEMPLATE(uint8_t);
26 KLEIDICV_INSTANTIATE_TEMPLATE(int8_t);
27 KLEIDICV_INSTANTIATE_TEMPLATE(uint16_t);
28 KLEIDICV_INSTANTIATE_TEMPLATE(int16_t);
29 KLEIDICV_INSTANTIATE_TEMPLATE(int32_t);
30
31 } // namespace kleidicv::sme
32