blob: 726051608d742d2e6acc70a57da80ee882d2b0be [file] [log] [blame]
Sadik Armagan1342bed2021-11-17 15:01:00 +00001//
Teresa Charlin5cc8e442024-02-21 14:07:41 +00002// Copyright © 2019-2021, 2024 Arm Ltd and Contributors. All rights reserved.
Sadik Armagan1342bed2021-11-17 15:01:00 +00003// SPDX-License-Identifier: MIT
4//
5#include <armnn/Types.hpp>
6#include <armnnUtils/CompatibleTypes.hpp>
7
8#include "BFloat16.hpp"
9#include "Half.hpp"
10
11using namespace armnn;
12
13namespace armnnUtils
14{
15
16template<typename T>
17bool CompatibleTypes(DataType)
18{
19 return false;
20}
21
22template<>
23bool CompatibleTypes<float>(DataType dataType)
24{
25 return dataType == DataType::Float32;
26}
27
28template<>
29bool CompatibleTypes<Half>(DataType dataType)
30{
31 return dataType == DataType::Float16;
32}
33
34template<>
35bool CompatibleTypes<BFloat16>(DataType dataType)
36{
37 return dataType == DataType::BFloat16;
38}
39
40template<>
41bool CompatibleTypes<uint8_t>(DataType dataType)
42{
43 return dataType == DataType::Boolean || dataType == DataType::QAsymmU8;
44}
45
46template<>
47bool CompatibleTypes<int8_t>(DataType dataType)
48{
49 return dataType == DataType::QSymmS8
50 || dataType == DataType::QAsymmS8;
51}
52
53template<>
54bool CompatibleTypes<int16_t>(DataType dataType)
55{
56 return dataType == DataType::QSymmS16;
57}
58
59template<>
60bool CompatibleTypes<int32_t>(DataType dataType)
61{
62 return dataType == DataType::Signed32;
63}
64
Teresa Charlin5cc8e442024-02-21 14:07:41 +000065template<>
66bool CompatibleTypes<int64_t>(DataType dataType)
67{
68 return dataType == DataType::Signed64;
69}
70
Sadik Armagan1342bed2021-11-17 15:01:00 +000071} //namespace armnnUtils