From 5a9dec7534c09b7eb1646085517dcce5ff48033c Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Thu, 12 Sep 2019 13:07:05 -0400 Subject: [PATCH] gallium: Restore VSX for llvm >= 4 Accidentally dropped in 4fdd455eeb7cffadee86f06c685005a3b64ce94b. Fixes: 4fdd455e ("gallium: Require LLVM >= 3.4) Reported-by: Ilia Mirkin Reviewed-by: Timothy Arceri --- src/gallium/auxiliary/gallivm/lp_bld_misc.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp index 3580ea6dd4b..52e9f7bc770 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp +++ b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp @@ -410,6 +410,20 @@ lp_build_create_jit_compiler_for_module(LLVMExecutionEngineRef *OutJIT, if (util_cpu_caps.has_altivec) { MAttrs.push_back("-vsx"); } +#else + /* + * Bug 25503 is fixed, by the same fix that fixed + * bug 26775, in versions of LLVM later than 3.8 (starting with 3.8.1). + * BZ 33531 actually comprises more than one bug, all of + * which are fixed in LLVM 4.0. + * + * With LLVM 4.0 or higher: + * Make sure VSX instructions are ENABLED (if supported), unless + * VSX instructions are explicitly enabled/disabled via GALLIVM_VSX=1 or 0. + */ + if (util_cpu_caps.has_altivec) { + MAttrs.push_back(util_cpu_caps.has_vsx ? "+vsx" : "-vsx"); + } #endif #endif -- 2.30.2