blob: a727950bb85db0ac4471d9b8c3a0db5f8e764d0a [file] [log] [blame]
mathad01b392e982021-04-07 12:07:30 +01001//
2// Copyright © 2021 Arm Ltd and Contributors. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5
6#pragma once
7
Sadik Armagana097d2a2021-11-24 15:47:28 +00008#include <armnnTestUtils/LayerTestResult.hpp>
mathad01b392e982021-04-07 12:07:30 +01009
10#include <ResolveType.hpp>
11
12#include <armnn/backends/IBackendInternal.hpp>
Colm Donelan0c479742021-12-10 12:43:54 +000013#include <armnn/backends/WorkloadFactory.hpp>
mathad01b392e982021-04-07 12:07:30 +010014#include <Half.hpp>
15
16template<armnn::DataType inputDataType, armnn::DataType outputDataType,
17 typename TInput=armnn::ResolveType<inputDataType>,
18 typename TOutput=armnn::ResolveType<outputDataType>>
19LayerTestResult<TOutput, 4> CastTest(armnn::IWorkloadFactory& workloadFactory,
20 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
21 const armnn::ITensorHandleFactory& tensorHandleFactory,
22 const std::vector<TInput>& inputTensor,
23 const std::vector<TOutput>& outputTensor);
24
25
26LayerTestResult<float, 4> CastInt32ToFloat2dTest(
27 armnn::IWorkloadFactory& workloadFactory,
28 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
29 const armnn::ITensorHandleFactory& tensorHandleFactory);
30
31LayerTestResult<float, 4> CastInt16ToFloat2dTest(
32 armnn::IWorkloadFactory& workloadFactory,
33 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
34 const armnn::ITensorHandleFactory& tensorHandleFactory);
35
36LayerTestResult<float, 4> CastInt8ToFloat2dTest(
37 armnn::IWorkloadFactory& workloadFactory,
38 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
39 const armnn::ITensorHandleFactory& tensorHandleFactory);
40
41LayerTestResult<float, 4> CastInt8AsymmToFloat2dTest(
42 armnn::IWorkloadFactory& workloadFactory,
43 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
44 const armnn::ITensorHandleFactory& tensorHandleFactory);
45
46LayerTestResult<float, 4> CastUInt8ToFloat2dTest(
47 armnn::IWorkloadFactory& workloadFactory,
48 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
49 const armnn::ITensorHandleFactory& tensorHandleFactory);
50
51LayerTestResult<uint8_t, 4> CastInt8ToUInt82dTest(
52 armnn::IWorkloadFactory& workloadFactory,
53 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
54 const armnn::ITensorHandleFactory& tensorHandleFactory);
55
56LayerTestResult<uint8_t, 4> CastInt8AsymmToUInt82dTest(
57 armnn::IWorkloadFactory& workloadFactory,
58 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
59 const armnn::ITensorHandleFactory& tensorHandleFactory);
60
61LayerTestResult<float, 4> CastFloat16ToFloat322dTest(
62 armnn::IWorkloadFactory& workloadFactory,
63 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
64 const armnn::ITensorHandleFactory& tensorHandleFactory);
65
66LayerTestResult<float, 4> CastBFloat16ToFloat322dTest(
67 armnn::IWorkloadFactory& workloadFactory,
68 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
69 const armnn::ITensorHandleFactory& tensorHandleFactory);
70
71LayerTestResult<armnn::Half, 4> CastFloat32ToFloat162dTest(
72 armnn::IWorkloadFactory& workloadFactory,
73 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
74 const armnn::ITensorHandleFactory& tensorHandleFactory);
75
76LayerTestResult<int8_t , 4> CastFloat32ToInt82dTest(
77 armnn::IWorkloadFactory& workloadFactory,
78 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
79 const armnn::ITensorHandleFactory& tensorHandleFactory);
80
81LayerTestResult<uint8_t , 4> CastFloat32ToUInt82dTest(
82 armnn::IWorkloadFactory& workloadFactory,
83 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
84 const armnn::ITensorHandleFactory& tensorHandleFactory);