Lines Matching defs:instr
40 nir_can_move_instr(nir_instr *instr, nir_move_options options)
42 switch (instr->type) {
48 if (nir_op_is_vec(nir_instr_as_alu(instr)->op) ||
49 nir_instr_as_alu(instr)->op == nir_op_b2i32)
51 if (nir_alu_instr_is_comparison(nir_instr_as_alu(instr)))
56 nir_intrinsic_instr *intrin = nir_instr_as_intrinsic(instr);
144 nir_instr *instr = use->parent_instr;
145 nir_block *use_block = instr->block;
154 if (instr->type == nir_instr_type_phi) {
155 nir_phi_instr *phi = nir_instr_as_phi(instr);
213 nir_foreach_instr_reverse_safe(instr, block) {
214 if (!nir_can_move_instr(instr, options))
217 nir_ssa_def *def = nir_instr_ssa_def(instr);
220 instr->type != nir_instr_type_intrinsic ||
221 can_sink_out_of_loop(nir_instr_as_intrinsic(instr));
225 if (!use_block || use_block == instr->block)
228 nir_instr_remove(instr);
229 nir_instr_insert(nir_after_phis(use_block), instr);