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 |