uweigand added a comment.

In http://reviews.llvm.org/D15603#338593, @Anastasia wrote:

> Yes, I see that it happens only for some vector types. The CodeGen follows 
> quite different paths for both targets. And in the case of s390x-linux-gnu it 
> ends up in ABIArgInfo::Indirect case of the second switch statement where an 
> additional pointer will be added here:
>
>   ArgTypes[FirstIRArg] = LTy->getPointerTo();
>
> I don't have enough knowledge at the moment of this ABI to tell whether it's 
> Ok, but the generated code appears to be completely wrong.


Well, yes, on SystemZ we pass 16-byte vector types via implicit reference 
(using ABIArgInfo::Indirect) in the default case, i.e. when targeting an older 
CPU without SIMD.  But the code generated for OpenCL pipes doesn't actually 
seem to correctly implement that convention either ...  (It does work for 
normal calls via C/C++/...)

> As a temporary workaround to fix your build bot, I suggest you to add 
> '-triple x86_64-linux-gnu' into RUN line of the test:

> 

>   -// RUN: %clang_cc1 -emit-llvm -O0 -cl-std=CL2.0 -o - %s | FileCheck %s

>   +// RUN: %clang_cc1 -emit-llvm -O0 -cl-std=CL2.0 -o - -triple 
> x86_64-linux-gnu %s | FileCheck %s

> 

> It has already been done before in OpenCL tests as we don't support most of 
> targets anyways.


OK, I've checked this in as rev. 259183.  Thanks!


http://reviews.llvm.org/D15603



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to