Lines Matching refs:ins
286 mir_foreach_instr_in_block(block, ins)
287 instructions[i++] = ins;
393 mir_adjust_constant(midgard_instruction *ins, unsigned src,
399 unsigned type_size = nir_alu_type_get_type_size(ins->src_types[src]) / 8;
401 unsigned max_comp = mir_components_for_type(ins->src_types[src]);
403 mir_bytemask_of_read_components_index(ins, src),
421 uint8_t *constantp = ins->constants.u8 + (type_size * comp);
469 mir_adjust_constants(midgard_instruction *ins,
474 if (!ins->has_constants)
488 if (ins->src[src] != SSA_FIXED_REGISTER(REGISTER_CONSTANT))
492 if (mir_adjust_constant(ins, src, &bundle_constant_mask,
497 if (mir_adjust_constant(ins, src, &bundle_constant_mask,
514 mir_foreach_src(ins, s) {
515 if (ins->src[s] == r_constant)
516 mir_compose_swizzle(ins->swizzle[s], comp_mapping[s], ins->swizzle[s]);
525 mir_pipeline_count(midgard_instruction *ins)
529 mir_foreach_src(ins, i) {
531 if (ins->src[i] == ~0) continue;
535 unsigned bytemask = mir_bytemask_of_read_components_index(ins, i);
554 mir_is_add_2(midgard_instruction *ins)
556 if (ins->op != midgard_alu_op_fadd)
559 if (ins->src[0] != ins->src[1])
562 if (ins->src_types[0] != ins->src_types[1])
566 if (ins->swizzle[0][i] != ins->swizzle[1][i])
570 if (ins->src_abs[0] != ins->src_abs[1])
573 if (ins->src_neg[0] != ins->src_neg[1])
580 mir_adjust_unit(midgard_instruction *ins, unsigned unit)
583 if (mir_is_add_2(ins) && (unit & (UNITS_MUL | UNIT_VLUT))) {
584 ins->op = midgard_alu_op_fmul;
586 ins->src[1] = ~0;
587 ins->src_abs[1] = false;
588 ins->src_neg[1] = false;
590 ins->has_inline_constant = true;
591 ins->inline_constant = _mesa_float_to_half(2.0);
596 mir_has_unit(midgard_instruction *ins, unsigned unit)
598 if (alu_opcode_props[ins->op].props & unit)
602 if (mir_is_add_2(ins))
612 mir_live_effect(uint16_t *liveness, midgard_instruction *ins, bool destructive)
617 if (ins->dest < SSA_FIXED_MINIMUM) {
618 unsigned bytemask = mir_bytemask(ins);
620 free_live += util_bitcount(liveness[ins->dest] & bytemask);
623 liveness[ins->dest] &= ~bytemask;
628 mir_foreach_src(ins, s) {
629 unsigned S = ins->src[s];
634 dupe |= (ins->src[q] == S);
640 unsigned bytemask = mir_bytemask_of_read_components(ins, S);
1031 midgard_instruction *ins =
1034 mir_update_worklist(worklist, len, instructions, ins);
1037 .tag = ins->op == midgard_tex_op_barrier ?
1039 (ins->op == midgard_tex_op_fetch) || is_vertex ?
1042 .instructions = { ins }
1063 midgard_instruction *ins =
1069 assert(ins != NULL);
1074 .instructions = { ins, pair }
1082 mir_update_worklist(worklist, len, instructions, ins);
1116 midgard_instruction *ins =
1119 if (ins) {
1120 ins->unit = unit_names[i];
1121 *(units[i]) = ins;
1282 midgard_instruction *ins = vadd_csel ? vadd : smul;
1283 midgard_instruction *cond = mir_schedule_condition(ctx, &predicate, worklist, len, instructions, ins);
1491 mir_foreach_instr_in_block_safe(block, ins) {
1492 list_del(&ins->link);
1495 mir_foreach_instr_in_block_scheduled_rev(block, ins) {
1496 list_add(&ins->link, &block->base.instructions);