mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-16 09:48:16 +02:00
nir: Add a shallow clone function for nir_alu_instr
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> Suggested-by: Jason Ekstrand <jason@jlekstrand.net> Suggested-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:
parent
0e1c5cc78f
commit
336eab0630
2 changed files with 23 additions and 0 deletions
|
|
@ -2888,6 +2888,9 @@ void nir_print_shader_annotated(nir_shader *shader, FILE *fp, struct hash_table
|
|||
void nir_print_instr(const nir_instr *instr, FILE *fp);
|
||||
void nir_print_deref(const nir_deref_instr *deref, FILE *fp);
|
||||
|
||||
/** Shallow clone of a single ALU instruction. */
|
||||
nir_alu_instr *nir_alu_instr_clone(nir_shader *s, const nir_alu_instr *orig);
|
||||
|
||||
nir_shader *nir_shader_clone(void *mem_ctx, const nir_shader *s);
|
||||
nir_function_impl *nir_function_impl_clone(nir_shader *shader,
|
||||
const nir_function_impl *fi);
|
||||
|
|
|
|||
|
|
@ -265,6 +265,26 @@ __clone_dst(clone_state *state, nir_instr *ninstr,
|
|||
}
|
||||
}
|
||||
|
||||
nir_alu_instr *
|
||||
nir_alu_instr_clone(nir_shader *shader, const nir_alu_instr *orig)
|
||||
{
|
||||
nir_alu_instr *clone = nir_alu_instr_create(shader, orig->op);
|
||||
|
||||
clone->exact = orig->exact;
|
||||
|
||||
for (unsigned i = 0; i < nir_op_infos[orig->op].num_inputs; i++)
|
||||
nir_alu_src_copy(&clone->src[i], &orig->src[i], clone);
|
||||
|
||||
nir_ssa_dest_init(&clone->instr,
|
||||
&clone->dest.dest,
|
||||
orig->dest.dest.ssa.num_components,
|
||||
orig->dest.dest.ssa.bit_size,
|
||||
orig->dest.dest.ssa.name);
|
||||
clone->dest.write_mask = orig->dest.write_mask;
|
||||
|
||||
return clone;
|
||||
}
|
||||
|
||||
static nir_alu_instr *
|
||||
clone_alu(clone_state *state, const nir_alu_instr *alu)
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue