xref: /aosp_15_r20/external/armnn/src/backends/neon/NeonRegistryInitializer.cpp (revision 89c4ff92f2867872bb9e2354d150bf0c8c502810)
1 //
2 // Copyright © 2017 Arm Ltd. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
6 #include "NeonBackend.hpp"
7 
8 #include <armnn/BackendRegistry.hpp>
9 #include <armnn/Utils.hpp>
10 
11 namespace
12 {
13 
14 using namespace armnn;
15 
16 static BackendRegistry::StaticRegistryInitializer g_RegisterHelper
17 {
18     BackendRegistryInstance(),
19     NeonBackend::GetIdStatic(),
20     []()
__anonc6c38e500202() 21     {
22         // Check if device supports Neon.
23         if (NeonDetected())
24         {
25             return IBackendInternalUniquePtr(new NeonBackend);
26         }
27 
28         // If device does not support Neon throw exception so the Backend is not added to supportedBackends
29         ARMNN_LOG(info) << "Neon support not found on device, could not register CpuAcc Backend.";
30         throw armnn::BackendUnavailableException(
31                 "Neon support not found on device, could not register CpuAcc Backend.\n");
32     }
33 };
34 
35 } // Anonymous namespace
36