ac: use llvm.amdgcn.kill with LLVM 6.0
authorMarek Olšák <marek.olsak@amd.com>
Wed, 4 Oct 2017 03:06:57 +0000 (05:06 +0200)
committerMarek Olšák <marek.olsak@amd.com>
Tue, 24 Oct 2017 12:56:34 +0000 (14:56 +0200)
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
src/amd/common/ac_llvm_build.c

index 5bd0466321687860f4e388d52113c21926aaa0dd..3e5b795d6fecb29e9b29178d5cf9f209600c4e18 100644 (file)
@@ -1407,6 +1407,12 @@ LLVMValueRef ac_build_cvt_pkrtz_f16(struct ac_llvm_context *ctx,
 
 void ac_build_kill_if_false(struct ac_llvm_context *ctx, LLVMValueRef i1)
 {
+       if (HAVE_LLVM >= 0x0600) {
+               ac_build_intrinsic(ctx, "llvm.amdgcn.kill", ctx->voidt,
+                                  &i1, 1, 0);
+               return;
+       }
+
        LLVMValueRef value = LLVMBuildSelect(ctx->builder, i1,
                                             LLVMConstReal(ctx->f32, 1),
                                             LLVMConstReal(ctx->f32, -1), "");