summaryrefslogtreecommitdiff
path: root/cpu_ref/rsCpuScript.cpp
diff options
context:
space:
mode:
authorTim Murray <timmurray@google.com>2014-06-13 12:44:47 -0700
committerTim Murray <timmurray@google.com>2014-06-13 14:14:26 -0700
commitbee48d79ba974e3dfbb782f9cce5c8d554f488e7 (patch)
tree5628b7fa7da4e7cdf8ef6a8d64412d5dae8621fd /cpu_ref/rsCpuScript.cpp
parent1109ae5cbbebb4922aba0ae84cd859c6695a6184 (diff)
Disable NEON libclcore for AArch64.
On ARMv8/AArch64, we can use the standard libclcore.bc for any precision, as ASIMD is full IEEE 754 precision. Change-Id: Iecff433b20f40a7f2272e497ad2e47a2f4b63ef3
Diffstat (limited to 'cpu_ref/rsCpuScript.cpp')
-rw-r--r--cpu_ref/rsCpuScript.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/cpu_ref/rsCpuScript.cpp b/cpu_ref/rsCpuScript.cpp
index e7c68b06..35dfde17 100644
--- a/cpu_ref/rsCpuScript.cpp
+++ b/cpu_ref/rsCpuScript.cpp
@@ -436,9 +436,11 @@ bool RsdCpuScriptImpl::init(char const *resName, char const *cacheDir,
switch (prec) {
case bcinfo::RS_FP_Imprecise:
case bcinfo::RS_FP_Relaxed:
-#if defined(ARCH_ARM_HAVE_NEON)
- // NEON-capable devices can use an accelerated math library for all
- // reduced precision scripts.
+#if defined(ARCH_ARM_HAVE_NEON) && !defined(ARCH_ARM64_HAVE_NEON)
+ // NEON-capable ARMv7a devices can use an accelerated math library
+ // for all reduced precision scripts.
+ // ARMv8 does not use NEON, as ASIMD can be used with all precision
+ // levels.
core_lib = bcc::RSInfo::LibCLCoreNEONPath;
#endif
break;
@@ -508,7 +510,7 @@ bool RsdCpuScriptImpl::init(char const *resName, char const *cacheDir,
for (size_t i = 0; i < ME.getExportForEachSignatureCount(); i++) {
char* name = new char[strlen(ME.getExportForEachNameList()[i]) + 1];
- mExportedForEachFuncList.push_back(std::make_pair(name,
+ mExportedForEachFuncList.push_back(std::make_pair(name,
ME.getExportForEachSignatureList()[i]));
}
@@ -1105,7 +1107,7 @@ RsdCpuScriptImpl::~RsdCpuScriptImpl() {
if (mBoundAllocs) {
delete[] mBoundAllocs;
}
-
+
for (size_t i = 0; i < mExportedForEachFuncList.size(); i++) {
delete[] mExportedForEachFuncList[i].first;
}