KleidiAI Coverage Report


Directory: ./
Coverage: low: ≥ 0% medium: ≥ 75.0% high: ≥ 90.0%
Coverage Exec / Excl / Total
Lines: 37.5% 12 / 2 / 34
Functions: 100.0% 2 / 0 / 2
Branches: 22.2% 4 / 0 / 18

test/common/memory.cpp
Line Branch Exec Source
1 //
2 // SPDX-FileCopyrightText: Copyright 2025 Arm Limited and/or its affiliates <open-source-office@arm.com>
3 //
4 // SPDX-License-Identifier: Apache-2.0
5 //
6
7 #include "test/common/memory.hpp"
8
9 #include <limits>
10
11 #include "test/common/bfloat16.hpp"
12 #include "test/common/float16.hpp"
13
14 namespace kai::test {
15
16 134513786 double read_array(DataType type, const void* array, size_t index) {
17
2/9
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✓ Branch 2 taken 131260000 times.
✓ Branch 3 taken 3253786 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
134513786 switch (type) {
18 case DataType::FP32:
19 131260000 return read_array<float>(array, index);
20 case DataType::FP16:
21 3253786 return static_cast<float>(read_array<Float16>(array, index));
22 case DataType::BF16:
23 return static_cast<float>(read_array<BFloat16<>>(array, index));
24 case DataType::I32:
25 return read_array<int32_t>(array, index);
26 case DataType::QAI8:
27 case DataType::QSI8:
28 return read_array<int8_t>(array, index);
29 case DataType::QSU4:
30 return read_array<UInt4>(array, index);
31 case DataType::QSI4:
32 case DataType::QAI4:
33 return read_array<Int4>(array, index);
34 case DataType::UNKNOWN:
35 default:
36 KAI_ERROR("Trying to read unknown data type");
37 }
38 return std::numeric_limits<double>::signaling_NaN();
39 134513786 }
40
41 67295152 void write_array(DataType type, void* array, size_t index, double value) {
42
2/9
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✓ Branch 2 taken 65659997 times.
✓ Branch 3 taken 1635155 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
67295152 switch (type) {
43 case DataType::FP32: {
44 65659997 write_array<float>(array, index, value);
45 65659997 return;
46 }
47 case DataType::FP16: {
48 1635155 write_array<Float16>(array, index, static_cast<Float16>(value));
49 1635155 return;
50 }
51 case DataType::BF16: {
52 write_array<BFloat16<>>(array, index, static_cast<BFloat16<>>(value));
53 return;
54 }
55 case DataType::I32: {
56 write_array<int32_t>(array, index, value);
57 return;
58 }
59 case DataType::QAI8:
60 case DataType::QSI8: {
61 write_array<int8_t>(array, index, value);
62 return;
63 }
64 case DataType::QSU4: {
65 write_array<UInt4>(array, index, static_cast<UInt4>(value));
66 return;
67 }
68 case DataType::QSI4:
69 case DataType::QAI4: {
70 write_array<Int4>(array, index, static_cast<Int4>(value));
71 return;
72 }
73 case DataType::UNKNOWN:
74 default:
75 KAI_ERROR("Trying to write unknown data type");
76 }
77 67295152 }
78
79 } // namespace kai::test
80