summaryrefslogtreecommitdiffstats
path: root/src/amd/common/ac_llvm_util.h
diff options
context:
space:
mode:
authorDave Airlie <[email protected]>2017-02-02 08:58:57 +1000
committerDave Airlie <[email protected]>2017-02-03 09:54:04 +1000
commita9773311f6a1b7f49dbd207c12e8081a5823c5a9 (patch)
tree06fcf139d800333a544768dbc09f4778495a4139 /src/amd/common/ac_llvm_util.h
parente198a64e3532af9b30d7c3fac4d092ecea7d2e41 (diff)
radeonsi/ac: move a bunch of load/store related things to common code.
These are all shareable with radv, so start migrating them to the common code. Reviewed-by: Bas Nieuwenhuizen <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
Diffstat (limited to 'src/amd/common/ac_llvm_util.h')
-rw-r--r--src/amd/common/ac_llvm_util.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/amd/common/ac_llvm_util.h b/src/amd/common/ac_llvm_util.h
index 2a33765c829..c2193d1347d 100644
--- a/src/amd/common/ac_llvm_util.h
+++ b/src/amd/common/ac_llvm_util.h
@@ -52,8 +52,11 @@ struct ac_llvm_context {
LLVMTypeRef i32;
LLVMTypeRef f32;
+ unsigned invariant_load_md_kind;
+ unsigned uniform_md_kind;
unsigned fpmath_md_kind;
LLVMValueRef fpmath_md_2p5_ulp;
+ LLVMValueRef empty_md;
};
LLVMTargetMachineRef ac_create_target_machine(enum radeon_family family, bool supports_spill);
@@ -112,6 +115,25 @@ ac_build_fs_interp_mov(struct ac_llvm_context *ctx,
LLVMValueRef llvm_chan,
LLVMValueRef attr_number,
LLVMValueRef params);
+
+LLVMValueRef
+ac_build_gep0(struct ac_llvm_context *ctx,
+ LLVMValueRef base_ptr,
+ LLVMValueRef index);
+
+void
+ac_build_indexed_store(struct ac_llvm_context *ctx,
+ LLVMValueRef base_ptr, LLVMValueRef index,
+ LLVMValueRef value);
+
+LLVMValueRef
+ac_build_indexed_load(struct ac_llvm_context *ctx,
+ LLVMValueRef base_ptr, LLVMValueRef index,
+ bool uniform);
+
+LLVMValueRef
+ac_build_indexed_load_const(struct ac_llvm_context *ctx,
+ LLVMValueRef base_ptr, LLVMValueRef index);
#ifdef __cplusplus
}
#endif