KleidiAI Coverage Report


Directory: ./
File: test/common/memory.cpp
Date: 2025-10-20 13:18:31
Coverage Exec Excl Total
Lines: 37.5% 12 2 34
Functions: 100.0% 2 0 2
Branches: 22.2% 4 0 18

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 68574998 double read_array(DataType type, const void* array, size_t index) {
17
2/9
✗ Branch 0 not taken.
✓ Branch 1 taken 62796996 times.
✓ Branch 2 taken 5778002 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
68574998 switch (type) {
18 case DataType::FP32:
19 62796996 return read_array<float>(array, index);
20 case DataType::FP16:
21 5778002 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 return read_array<int8_t>(array, index);
28 case DataType::QSU4:
29 return read_array<UInt4>(array, index);
30 case DataType::QSI4:
31 return read_array<Int4>(array, index);
32 case DataType::UNKNOWN:
33 default:
34 KAI_ERROR("Trying to read unknown data type");
35 }
36 return std::numeric_limits<double>::signaling_NaN();
37 68574998 }
38
39 34336255 void write_array(DataType type, void* array, size_t index, double value) {
40
2/9
✗ Branch 0 not taken.
✓ Branch 1 taken 31422876 times.
✓ Branch 2 taken 2913379 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
34336255 switch (type) {
41 case DataType::FP32: {
42 31422876 write_array<float>(array, index, value);
43 31422876 return;
44 }
45 case DataType::FP16: {
46 2913379 write_array<Float16>(array, index, static_cast<Float16>(value));
47 2913379 return;
48 }
49 case DataType::BF16: {
50 write_array<BFloat16<>>(array, index, static_cast<BFloat16<>>(value));
51 return;
52 }
53 case DataType::I32: {
54 write_array<int32_t>(array, index, value);
55 return;
56 }
57 case DataType::QAI8: {
58 write_array<int8_t>(array, index, value);
59 return;
60 }
61 case DataType::QSU4: {
62 write_array<UInt4>(array, index, static_cast<UInt4>(value));
63 return;
64 }
65 case DataType::QSI4: {
66 write_array<Int4>(array, index, static_cast<Int4>(value));
67 return;
68 }
69 case DataType::UNKNOWN:
70 default:
71 KAI_ERROR("Trying to write unknown data type");
72 }
73 34336255 }
74
75 } // namespace kai::test
76