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