diff options
author | Roland Scheidegger <sroland@vmware.com> | 2016-05-08 00:40:07 +0200 |
---|---|---|
committer | Roland Scheidegger <sroland@vmware.com> | 2016-05-10 17:08:16 +0200 |
commit | 8b66e2647d5e36e318177a460e6e586d6ca8c36b (patch) | |
tree | 4613d61ac1904a08c21f5ffc22732db5661374f5 /src/gallium/auxiliary/gallivm | |
parent | 94e8653a3bb9044847451b8a202da07d51adcc3a (diff) | |
download | external_mesa3d-8b66e2647d5e36e318177a460e6e586d6ca8c36b.zip external_mesa3d-8b66e2647d5e36e318177a460e6e586d6ca8c36b.tar.gz external_mesa3d-8b66e2647d5e36e318177a460e6e586d6ca8c36b.tar.bz2 |
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 <tjaalton@ubuntu.com>
Reviewed-by: Jose Fonseca <jfonseca@vmware.com
CC: <mesa-stable@lists.freedesktop.org>
Diffstat (limited to 'src/gallium/auxiliary/gallivm')
-rw-r--r-- | src/gallium/auxiliary/gallivm/lp_bld_misc.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp index bb08892..42a53ec 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) |