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

Oded Gabbay oded.gabbay at gmail.com
Tue Nov 17 10:37:44 PST 2015


On Tue, Nov 17, 2015 at 6:15 PM, Emil Velikov <emil.l.velikov at gmail.com> wrote:
> On 17 November 2015 at 16:02, Oded Gabbay <oded.gabbay at gmail.com> wrote:
>> 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.
>>
>> v2:
>> - Added check that we have at least LLVM 3.4
>> - Added the LLVM bug URL as a comment in the code
>>
>> 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 | 4 ++++
>>  1 file changed, 4 insertions(+)
>>
>> diff --git a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp
>> index 7bda118..152593a 100644
>> --- a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp
>> +++ b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp
>> @@ -536,6 +536,10 @@ lp_build_create_jit_compiler_for_module(LLVMExecutionEngineRef *OutJIT,
>>
>>  #if defined(PIPE_ARCH_PPC)
>>     MAttrs.push_back(util_cpu_caps.has_altivec ? "+altivec" : "-altivec");
>> +#if HAVE_LLVM >= 0x0304
>> +   /* See LLVM bug https://llvm.org/bugs/show_bug.cgi?id=25503#c7 */
>> +   MAttrs.push_back("-vsx");
> The commit message does not reflect what the patch actually does. I
> cannot object against the patch in any way, although the two should be
> in sync imho.
>
> Base of a very quick look at the llvm bug, I'm leaning that the commit
> msg is correct and the patch is off ?
>
> Thanks
> Emil

Hmm, I'm not sure I understand what you mean.

The commit message says: "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"

And the patch itself disables the VSX attribute in LLVM backend in
case we use Altivec (VMX) - meaning that no VSX instructions will be
generated alongside Altivec instructions.

So unless I completely misunderstood something, the commit message and
the patch match.

The llvm bug description maybe a little misleading, because I started
it last week and then I had a different impression. But that's why I
pointed to comment #7 which is where I wrote the updated description,
which matches this patch (workaround).

      Oded


More information about the mesa-stable mailing list