Lines Matching defs:instr
38 #include "instr-a3xx.h"
43 ir3_handle_nonuniform(struct ir3_instruction *instr,
48 instr->flags |= IR3_INSTR_NONUNIF;
53 ir3_handle_bindless_cat6(struct ir3_instruction *instr, nir_src rsrc)
59 instr->flags |= IR3_INSTR_B;
60 instr->cat6.base = nir_intrinsic_desc_set(intrin);
82 struct ir3_instruction *instr;
87 instr = ir3_BARY_F(block, inloc, 0, coord, 0);
90 instr = ir3_FLAT_B(block, inloc, 0, inloc, 0);
92 instr = ir3_LDLV(block, inloc, 0, create_immed(block, 1), 0);
93 instr->cat6.type = TYPE_U32;
94 instr->cat6.iim_val = 1;
97 instr = ir3_BARY_F(block, inloc, 0, ctx->ij[IJ_PERSP_PIXEL], 0);
98 instr->srcs[1]->wrmask = 0x3;
101 return instr;
737 cond = cond->srcs[0]->def->instr;
1728 unsigned compmask, struct ir3_instruction *instr)
1733 assert(instr->opc == OPC_META_INPUT);
1734 instr->input.inidx = n;
1735 instr->input.sysval = slot;
2646 struct ir3_instruction *instr = ir3_SHPE(ctx->block);
2647 instr->barrier_class = instr->barrier_conflict = IR3_BARRIER_CONST_W;
2648 array_insert(b, b->keeps, instr);
2691 emit_load_const(struct ir3_context *ctx, nir_load_const_instr *instr)
2694 ir3_get_dst_ssa(ctx, &instr->def, instr->def.num_components);
2695 unsigned bit_size = ir3_bitsize(ctx, instr->def.bit_size);
2698 for (int i = 0; i < instr->def.num_components; i++)
2699 dst[i] = create_immed_typed(ctx->block, instr->value[i].u8, TYPE_U8);
2701 for (int i = 0; i < instr->def.num_components; i++)
2702 dst[i] = create_immed_typed(ctx->block, instr->value[i].u16, TYPE_U16);
2704 for (int i = 0; i < instr->def.num_components; i++)
2705 dst[i] = create_immed_typed(ctx->block, instr->value[i].u32, TYPE_U32);
3485 emit_instr(struct ir3_context *ctx, nir_instr *instr)
3487 switch (instr->type) {
3489 emit_alu(ctx, nir_instr_as_alu(instr));
3495 emit_intrinsic(ctx, nir_instr_as_intrinsic(instr));
3498 emit_load_const(ctx, nir_instr_as_load_const(instr));
3501 emit_undef(ctx, nir_instr_as_ssa_undef(instr));
3504 nir_tex_instr *tex = nir_instr_as_tex(instr);
3524 emit_jump(ctx, nir_instr_as_jump(instr));
3527 emit_phi(ctx, nir_instr_as_phi(instr));
3532 instr->type);
3594 nir_foreach_instr (instr, nblock) {
3595 ctx->cur_instr = instr;
3596 emit_instr(ctx, instr);
4017 foreach_instr (instr, &block->instr_list) {
4018 if (is_input(instr)) {
4019 unsigned inloc = instr->srcs[0]->iim_val;
4023 compile_assert(ctx, instr->srcs[0]->flags & IR3_REG_IMMED);
4027 } else if (instr->opc == OPC_META_TEX_PREFETCH) {
4029 unsigned inloc = instr->prefetch.input_offset + n;
4096 foreach_instr (instr, &block->instr_list) {
4097 if (is_input(instr)) {
4098 unsigned inloc = instr->srcs[0]->iim_val;
4102 instr->srcs[0]->iim_val = so->inputs[i].inloc + j;
4103 } else if (instr->opc == OPC_META_TEX_PREFETCH) {
4104 unsigned i = instr->prefetch.input_offset / 4;
4105 unsigned j = instr->prefetch.input_offset % 4;
4106 instr->prefetch.input_offset = so->inputs[i].inloc + j;
4499 foreach_instr_rev (instr, &block->instr_list) {
4500 if (instr->opc == OPC_END || instr->opc == OPC_CHMASK)
4501 return instr;
4556 foreach_instr_safe (instr, &block->instr_list) {
4557 if (instr->opc == OPC_META_TEX_PREFETCH) {
4563 if (instr->flags & IR3_INSTR_B) {
4566 fetch->tex_id = instr->prefetch.tex_base;
4567 fetch->samp_id = instr->prefetch.samp_base;
4568 fetch->tex_bindless_id = instr->prefetch.tex;
4569 fetch->samp_bindless_id = instr->prefetch.samp;
4572 fetch->tex_id = instr->prefetch.tex;
4573 fetch->samp_id = instr->prefetch.samp;
4575 fetch->wrmask = instr->dsts[0]->wrmask;
4576 fetch->dst = instr->dsts[0]->num;
4577 fetch->src = instr->prefetch.input_offset;
4587 MAX2(ctx->so->total_in, instr->prefetch.input_offset + 2);
4589 fetch->half_precision = !!(instr->dsts[0]->flags & IR3_REG_HALF);
4592 list_delinit(&instr->node);
4884 foreach_input (instr, ir) {
4885 if (instr->input.sysval != SYSTEM_VALUE_BARYCENTRIC_PERSP_PIXEL)
4889 instr->dsts[0]->num = idx;
4968 foreach_instr (instr, &block->instr_list) {
4969 instr->flags |= IR3_INSTR_SS | IR3_INSTR_SY;