From 8b66e2647d5e36e318177a460e6e586d6ca8c36b Mon Sep 17 00:00:00 2001 From: Roland Scheidegger Date: Sun, 8 May 2016 00:40:07 +0200 Subject: [PATCH] gallivm: disable avx512 features We don't target this yet, and some llvm versions incorrectly enable it based on cpu string, causing crashes. (Albeit this is a losing battle, it is pretty much guaranteed when the next new feature comes along llvm will mistakenly enable it on some future cpu, thus we would have to proactively disable all new features as llvm adds them.) This should fix https://bugs.freedesktop.org/show_bug.cgi?id=94291 (untested) Tested-by: Timo Aaltonen Reviewed-by: Jose Fonseca --- src/gallium/auxiliary/gallivm/lp_bld_misc.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp index bb08892142a..42a53ecb092 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp +++ b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp @@ -571,6 +571,18 @@ lp_build_create_jit_compiler_for_module(LLVMExecutionEngineRef *OutJIT, MAttrs.push_back(util_cpu_caps.has_avx ? "+avx" : "-avx"); MAttrs.push_back(util_cpu_caps.has_f16c ? "+f16c" : "-f16c"); MAttrs.push_back(util_cpu_caps.has_avx2 ? "+avx2" : "-avx2"); + /* disable avx512 and all subvariants */ +#if HAVE_LLVM >= 0x0304 + MAttrs.push_back("-avx512cd"); + MAttrs.push_back("-avx512er"); + MAttrs.push_back("-avx512f"); + MAttrs.push_back("-avx512pf"); +#endif +#if HAVE_LLVM >= 0x0305 + MAttrs.push_back("-avx512bw"); + MAttrs.push_back("-avx512dq"); + MAttrs.push_back("-avx512vl"); +#endif #endif #if defined(PIPE_ARCH_PPC) -- 2.30.2