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 |