Signed-off-by: Samuel Pitoiset <samuel.pitoi...@gmail.com>
---
 src/amd/common/ac_llvm_build.c  |  8 ++++++++
 src/amd/common/ac_llvm_build.h  |  3 +++
 src/amd/common/ac_nir_to_llvm.c | 12 ++----------
 3 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/src/amd/common/ac_llvm_build.c b/src/amd/common/ac_llvm_build.c
index 8d4f114a65..0a02ee38c1 100644
--- a/src/amd/common/ac_llvm_build.c
+++ b/src/amd/common/ac_llvm_build.c
@@ -2368,3 +2368,11 @@ LLVMValueRef ac_build_alloca_undef(struct 
ac_llvm_context *ac,
        LLVMBuildStore(ac->builder, LLVMGetUndef(type), ptr);
        return ptr;
 }
+
+LLVMValueRef ac_cast_ptr(struct ac_llvm_context *ctx, LLVMValueRef ptr,
+                         LLVMTypeRef type)
+{
+       int addr_space = LLVMGetPointerAddressSpace(LLVMTypeOf(ptr));
+       return LLVMBuildBitCast(ctx->builder, ptr,
+                               LLVMPointerType(type, addr_space), "");
+}
diff --git a/src/amd/common/ac_llvm_build.h b/src/amd/common/ac_llvm_build.h
index 2587c94315..33d3923157 100644
--- a/src/amd/common/ac_llvm_build.h
+++ b/src/amd/common/ac_llvm_build.h
@@ -395,6 +395,9 @@ LLVMValueRef ac_build_alloca(struct ac_llvm_context *ac, 
LLVMTypeRef type,
 LLVMValueRef ac_build_alloca_undef(struct ac_llvm_context *ac, LLVMTypeRef 
type,
                                   const char *name);
 
+LLVMValueRef ac_cast_ptr(struct ac_llvm_context *ctx, LLVMValueRef ptr,
+                        LLVMTypeRef type);
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c
index 9f2219a546..c57568f7b2 100644
--- a/src/amd/common/ac_nir_to_llvm.c
+++ b/src/amd/common/ac_nir_to_llvm.c
@@ -2090,14 +2090,6 @@ static void visit_load_const(struct ac_nir_context *ctx,
        _mesa_hash_table_insert(ctx->defs, &instr->def, value);
 }
 
-static LLVMValueRef cast_ptr(struct ac_llvm_context *ctx, LLVMValueRef ptr,
-                             LLVMTypeRef type)
-{
-       int addr_space = LLVMGetPointerAddressSpace(LLVMTypeOf(ptr));
-       return LLVMBuildBitCast(ctx->builder, ptr,
-                               LLVMPointerType(type, addr_space), "");
-}
-
 static LLVMValueRef
 get_buffer_size(struct ac_nir_context *ctx, LLVMValueRef descriptor, bool 
in_elements)
 {
@@ -2352,7 +2344,7 @@ radv_load_resource(struct ac_shader_abi *abi, 
LLVMValueRef index,
        offset = LLVMBuildAdd(ctx->ac.builder, offset, index, "");
        
        desc_ptr = ac_build_gep0(&ctx->ac, desc_ptr, offset);
-       desc_ptr = cast_ptr(&ctx->ac, desc_ptr, ctx->ac.v4i32);
+       desc_ptr = ac_cast_ptr(&ctx->ac, desc_ptr, ctx->ac.v4i32);
        LLVMSetMetadata(desc_ptr, ctx->ac.uniform_md_kind, ctx->ac.empty_md);
 
        return desc_ptr;
@@ -2379,7 +2371,7 @@ static LLVMValueRef visit_load_push_constant(struct 
ac_nir_context *ctx,
                            get_src(ctx, instr->src[0]), "");
 
        ptr = ac_build_gep0(&ctx->ac, ctx->abi->push_constants, addr);
-       ptr = cast_ptr(&ctx->ac, ptr, get_def_type(ctx, &instr->dest.ssa));
+       ptr = ac_cast_ptr(&ctx->ac, ptr, get_def_type(ctx, &instr->dest.ssa));
 
        return LLVMBuildLoad(ctx->ac.builder, ptr, "");
 }
-- 
2.16.2

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to