On Tue, Jan 30, 2018 at 12:32 AM, Samuel Pitoiset
<[email protected]> wrote:
>
>
> On 01/30/2018 12:03 AM, Bas Nieuwenhuizen wrote:
>>
>> llvm.amdgcn.kill is currently broken for SGPRs. The old intrinsic
>> had that issue too, but did not fold the preceding comparison into
>> the machine instruction in LLVM. As the preceding comparison is
>> often a float comparison, this results in a VGPR, essentially hiding
>> the issue.
>>
>> I have a fix outstanding for LLVM to make the new intrinsic work,
>> but as getting stuff reviewed, committed and cherry-picked in LLVM
>> takes quite a while, I'd like to be safe and disable the new
>> intrinsic with LLVM 6.
>>
>> We can always revert when the fix is in LLVM.
>
>
> Yes, I do agree.
>
> Reviewed-by: Samuel Pitoiset <[email protected]>

The LLVM fix got in and was cherry-picked suprisingly quick, so I will
drop this patch.
>
>
>>
>> Fixes: ad2b3b2a9c "ac: replace llvm.AMDGPU.kilp by llvm.amdgcn.kill with
>> LLVM 6"
>> ---
>>
>> The LLVM fix is available at https://reviews.llvm.org/D42302
>>
>>   src/amd/common/ac_llvm_build.c | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/src/amd/common/ac_llvm_build.c
>> b/src/amd/common/ac_llvm_build.c
>> index 5e08508fed..a34eda1037 100644
>> --- a/src/amd/common/ac_llvm_build.c
>> +++ b/src/amd/common/ac_llvm_build.c
>> @@ -1479,7 +1479,7 @@ LLVMValueRef ac_build_wqm_vote(struct
>> ac_llvm_context *ctx, LLVMValueRef i1)
>>     void ac_build_kill_if_false(struct ac_llvm_context *ctx, LLVMValueRef
>> i1)
>>   {
>> -       if (HAVE_LLVM >= 0x0600) {
>> +       if (HAVE_LLVM >= 0x0700) {
>>                 ac_build_intrinsic(ctx, "llvm.amdgcn.kill", ctx->voidt,
>>                                    &i1, 1, 0);
>>                 return;
>>
>
_______________________________________________
mesa-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to