diff options
author | Lubomir Rintel <[email protected]> | 2019-03-11 21:18:48 +0100 |
---|---|---|
committer | Matt Turner <[email protected]> | 2019-04-22 09:47:49 -0700 |
commit | e983a975c6843c307380d7caa083eee89e02bd3c (patch) | |
tree | ff16aa491fc4e87c94246a6b577ef31247e45872 | |
parent | bc6bfc861fd3484c4cc51f24ccb0bf64239fcfd7 (diff) |
gallivm: disable NEON instructions if they are not supported
The LLVM project made some questionable decisions about defaults for
armv7 (e.g. they enable NEON that is not there on NVIDIA and Marvell
platforms).
On top of that, getHostCPUFeatures() doesn't disable missing machine
attributes. Finally, -neon alone is not sufficient to disable emmision
of NEON instructions.
Signed-off-by: Lubomir Rintel <[email protected]>
Cc: <[email protected]>
Reviewed-by: Matt Turner <[email protected]>
-rw-r--r-- | src/gallium/auxiliary/gallivm/lp_bld_misc.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp index f3b5784fce7..f307c26d4f7 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp +++ b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp @@ -625,6 +625,13 @@ lp_build_create_jit_compiler_for_module(LLVMExecutionEngineRef *OutJIT, MAttrs.push_back("-avx512vl"); #endif #endif +#if defined(PIPE_ARCH_ARM) + if (!util_cpu_caps.has_neon) { + MAttrs.push_back("-neon"); + MAttrs.push_back("-crypto"); + MAttrs.push_back("-vfp2"); + } +#endif #if defined(PIPE_ARCH_PPC) MAttrs.push_back(util_cpu_caps.has_altivec ? "+altivec" : "-altivec"); |