1 //
2 // Copyright © 2021 Arm Ltd and Contributors. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
6 #pragma once
7 
8 #include <armnnTestUtils/LayerTestResult.hpp>
9 
10 #include <armnn/backends/IBackendInternal.hpp>
11 #include <armnn/backends/WorkloadFactory.hpp>
12 
13 LayerTestResult<float, 3> UnidirectionalSequenceLstmLayerFloat32TimeMajorSingleBatchTest(
14     armnn::IWorkloadFactory& workloadFactory,
15     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
16     const armnn::ITensorHandleFactory& tensorHandleFactory);
17 
18 LayerTestResult<float, 3> UnidirectionalSequenceLstmLayerFloat32BatchMajorSingleBatchTest(
19     armnn::IWorkloadFactory& workloadFactory,
20     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
21     const armnn::ITensorHandleFactory& tensorHandleFactory);
22 
23 LayerTestResult<float, 3> UnidirectionalSequenceLstmLayerFloat32Test(
24     armnn::IWorkloadFactory& workloadFactory,
25     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
26     const armnn::ITensorHandleFactory& tensorHandleFactory);
27 
28 LayerTestResult<float, 3> UnidirectionalSequenceLstmLayerFloat32TimeMajorTest(
29     armnn::IWorkloadFactory& workloadFactory,
30     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
31     const armnn::ITensorHandleFactory& tensorHandleFactory);
32 
33 LayerTestResult<float, 3> UnidirectionalSequenceLstmLayerNoCifgWithPeepholeWithProjectionTest(
34     armnn::IWorkloadFactory& workloadFactory,
35     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
36     const armnn::ITensorHandleFactory& tensorHandleFactory);
37 
38 LayerTestResult<float, 3> UnidirectionalSequenceLstmLayerNoCifgWithPeepholeWithProjectionWithLayerNormTest(
39     armnn::IWorkloadFactory& workloadFactory,
40     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
41     const armnn::ITensorHandleFactory& tensorHandleFactory);
42 
43 LayerTestResult<float, 3> UnidirectionalSequenceLstmWithCifgWithPeepholeNoProjectionTest(
44     armnn::IWorkloadFactory& workloadFactory,
45     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
46     const armnn::ITensorHandleFactory& tensorHandleFactory);
47 
48 LayerTestResult<float, 3> UnidirectionalSequenceLstmLayerInt8Test(
49     armnn::IWorkloadFactory& workloadFactory,
50     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
51     const armnn::ITensorHandleFactory& tensorHandleFactory);
52 
53 LayerTestResult<float, 3> UnidirectionalSequenceLstmLayerInt8TimeMajorTest(
54     armnn::IWorkloadFactory& workloadFactory,
55     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
56     const armnn::ITensorHandleFactory& tensorHandleFactory);
57 
58 LayerTestResult<float, 3> UnidirectionalSequenceLstmLayerInt8NoCifgWithPeepholeWithProjectionTest(
59     armnn::IWorkloadFactory& workloadFactory,
60     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
61     const armnn::ITensorHandleFactory& tensorHandleFactory);
62 
63 LayerTestResult<float, 3> UnidirectionalSequenceLstmLayerInt8NoCifgWithPeepholeWithProjectionWithLayerNormTest(
64     armnn::IWorkloadFactory& workloadFactory,
65     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
66     const armnn::ITensorHandleFactory& tensorHandleFactory);
67 
68 LayerTestResult<float, 3> UnidirectionalSequenceLstmInt8WithCifgWithPeepholeNoProjectionTest(
69     armnn::IWorkloadFactory& workloadFactory,
70     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
71     const armnn::ITensorHandleFactory& tensorHandleFactory);