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