From ff8ae4e58902a5a3252a34f21f4c2a9022b16157 Mon Sep 17 00:00:00 2001 From: Qiang Yu Date: Sat, 19 Mar 2022 21:05:33 +0800 Subject: [PATCH] nir/builder: add load/store array variable helper functions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed-by: Marek Olšák Acked-by: Pierre-Eric Pelloux-Prayer Signed-off-by: Qiang Yu Part-of: --- src/compiler/nir/nir_builder.h | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/src/compiler/nir/nir_builder.h b/src/compiler/nir/nir_builder.h index 928d7797f3f..af0660a7d88 100644 --- a/src/compiler/nir/nir_builder.h +++ b/src/compiler/nir/nir_builder.h @@ -1452,6 +1452,40 @@ nir_copy_var(nir_builder *build, nir_variable *dest, nir_variable *src) nir_build_deref_var(build, src)); } +static inline nir_ssa_def * +nir_load_array_var(nir_builder *build, nir_variable *var, nir_ssa_def *index) +{ + nir_deref_instr *deref = + nir_build_deref_array(build, nir_build_deref_var(build, var), index); + return nir_load_deref(build, deref); +} + +static inline nir_ssa_def * +nir_load_array_var_imm(nir_builder *build, nir_variable *var, int64_t index) +{ + nir_deref_instr *deref = + nir_build_deref_array_imm(build, nir_build_deref_var(build, var), index); + return nir_load_deref(build, deref); +} + +static inline void +nir_store_array_var(nir_builder *build, nir_variable *var, nir_ssa_def *index, + nir_ssa_def *value, unsigned writemask) +{ + nir_deref_instr *deref = + nir_build_deref_array(build, nir_build_deref_var(build, var), index); + nir_store_deref(build, deref, value, writemask); +} + +static inline void +nir_store_array_var_imm(nir_builder *build, nir_variable *var, int64_t index, + nir_ssa_def *value, unsigned writemask) +{ + nir_deref_instr *deref = + nir_build_deref_array_imm(build, nir_build_deref_var(build, var), index); + nir_store_deref(build, deref, value, writemask); +} + #undef nir_load_global static inline nir_ssa_def * nir_load_global(nir_builder *build, nir_ssa_def *addr, unsigned align,