[Mesa-dev] [PATCH] llvmpipe: disable vsx in ppc due to LLVM PPC bug

Roland Scheidegger sroland at vmware.com
Tue Nov 17 06:42:48 PST 2015


Am 17.11.2015 um 15:19 schrieb Oded Gabbay:
> This patch makes sure that if we use altivec (VMX) instructions, we don't
> use VSX instructions as well, as this cause piglit tests to fail
> 
> For more details, see: https://llvm.org/bugs/show_bug.cgi?id=25503#c7
> 
> With this patch, ppc64le reaches parity with x86-64 as far as piglit test
> suite is concerned.
> 
> Signed-off-by: Oded Gabbay <oded.gabbay at gmail.com>
> Cc: "11.0" <mesa-stable at lists.freedesktop.org>
> ---
>  src/gallium/auxiliary/gallivm/lp_bld_misc.cpp | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp
> index 7bda118..8c74cb8 100644
> --- a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp
> +++ b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp
> @@ -536,6 +536,7 @@ lp_build_create_jit_compiler_for_module(LLVMExecutionEngineRef *OutJIT,
>  
>  #if defined(PIPE_ARCH_PPC)
>     MAttrs.push_back(util_cpu_caps.has_altivec ? "+altivec" : "-altivec");
> +   MAttrs.push_back("-vsx");
>  #endif
>  
>     builder.setMAttrs(MAttrs);
> 

Doesn't that need some llvm version check, otherwise the attribute might
be unsupported (not entirely sure what happens in this case)? From a
very quick look, vsx seems to be a fairly recent addition (that is,
might not be in llvm 3.3 which is the minimum, at least for x86).
Otherwise looks ok to me. Albeit if llvm indeed miscompiles this ought
to be fixed as that's quite nasty (we had some bugs in the past where we
thought it might be miscompilation and it was due to us relying on
undefined behavior too).

Roland



More information about the mesa-dev mailing list