nir: Add a store_reg helper and use the builder in phis_to_regs
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Reviewed-by: Rob Clark <robdclark@chromium.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5094>
This commit is contained in:

committed by
Marge Bot

parent
3fdbeb70e1
commit
cc4a02d0ed
@@ -1159,6 +1159,20 @@ nir_load_reg(nir_builder *build, nir_register *reg)
|
||||
return nir_ssa_for_src(build, nir_src_for_reg(reg), reg->num_components);
|
||||
}
|
||||
|
||||
static inline void
|
||||
nir_store_reg(nir_builder *build, nir_register *reg,
|
||||
nir_ssa_def *def, nir_component_mask_t write_mask)
|
||||
{
|
||||
assert(reg->num_components == def->num_components);
|
||||
assert(reg->bit_size == def->bit_size);
|
||||
|
||||
nir_alu_instr *mov = nir_alu_instr_create(build->shader, nir_op_mov);
|
||||
mov->src[0].src = nir_src_for_ssa(def);
|
||||
mov->dest.dest = nir_dest_for_reg(reg);
|
||||
mov->dest.write_mask = write_mask & BITFIELD_MASK(reg->num_components);
|
||||
nir_builder_instr_insert(build, &mov->instr);
|
||||
}
|
||||
|
||||
static inline nir_ssa_def *
|
||||
nir_load_deref_with_access(nir_builder *build, nir_deref_instr *deref,
|
||||
enum gl_access_qualifier access)
|
||||
|
Reference in New Issue
Block a user