HomeSort by: relevance | last modified time | path
    Searched refs:ins (Results 1 - 25 of 396) sorted by relevancy

1 2 3 4 5 6 7 8 91011>>

  /xsrc/external/mit/MesaLib/dist/src/panfrost/midgard/
midgard_opt_dce.c 34 can_cull_mask(compiler_context *ctx, midgard_instruction *ins)
36 if (ins->dest >= ctx->temp_count)
39 if (ins->dest == ctx->blend_src1)
42 if (ins->type == TAG_LOAD_STORE_4)
43 if (load_store_opcode_props[ins->op].props & LDST_SPECIAL_MASK)
50 can_dce(midgard_instruction *ins)
52 if (ins->mask)
55 if (ins->compact_branch)
58 if (ins->type == TAG_LOAD_STORE_4)
59 if (load_store_opcode_props[ins->op].props & LDST_SIDE_FX
    [all...]
midgard_print.c 112 mir_print_embedded_constant(midgard_instruction *ins, unsigned src_idx)
116 unsigned base_size = max_bitsize_for_alu(ins);
117 unsigned sz = nir_alu_type_get_type_size(ins->src_types[src_idx]);
119 unsigned mod = mir_pack_mod(ins, src_idx, false);
120 unsigned *swizzle = ins->swizzle[src_idx];
121 midgard_reg_mode reg_mode = reg_mode_for_bitsize(max_bitsize_for_alu(ins));
122 unsigned comp_mask = effective_writemask(ins->op, ins->mask);
124 unsigned max_comp = mir_components_for_type(ins->dest_type);
141 mir_print_constant_component(stdout, &ins->constants
    [all...]
mir.c 28 void mir_rewrite_index_src_single(midgard_instruction *ins, unsigned old, unsigned new)
30 mir_foreach_src(ins, i) {
31 if (ins->src[i] == old)
32 ins->src[i] = new;
36 void mir_rewrite_index_dst_single(midgard_instruction *ins, unsigned old, unsigned new)
38 if (ins->dest == old)
39 ins->dest = new;
43 mir_rewrite_index_src_single_swizzle(midgard_instruction *ins, unsigned old, unsigned new, unsigned *swizzle)
45 for (unsigned i = 0; i < ARRAY_SIZE(ins->src); ++i) {
46 if (ins->src[i] != old) continue
    [all...]
midgard_ra.c 188 mir_foreach_instr_global(ctx, ins) {
189 switch (ins->type) {
191 mark_node_class(aluw, ins->dest);
192 mark_node_class(alur, ins->src[0]);
193 mark_node_class(alur, ins->src[1]);
194 mark_node_class(alur, ins->src[2]);
196 if (ins->compact_branch && ins->writeout)
197 mark_node_class(brar, ins->src[0]);
202 mark_node_class(aluw, ins->dest)
637 midgard_instruction *ins = v->instructions[i]; local
    [all...]
midgard_emit.c 89 mir_pack_mod(midgard_instruction *ins, unsigned i, bool scalar)
91 bool integer = midgard_is_integer_op(ins->op);
92 unsigned base_size = max_bitsize_for_alu(ins);
93 unsigned sz = nir_alu_type_get_type_size(ins->src_types[i]);
97 mir_get_imod(ins->src_shift[i], ins->src_types[i], half, scalar) :
98 ((ins->src_abs[i] << 0) |
99 ((ins->src_neg[i] << 1)));
134 vector_to_scalar_alu(midgard_vector_alu v, midgard_instruction *ins)
136 bool is_full = nir_alu_type_get_type_size(ins->dest_type) == 32
426 midgard_instruction *ins = bundle->instructions[i]; local
856 midgard_instruction *ins = bundle->instructions[i]; local
885 midgard_instruction *ins = bundle->instructions[i]; local
987 midgard_instruction *ins = bundle->instructions[i]; local
1029 midgard_instruction *ins = bundle->instructions[0]; local
    [all...]
midgard_opt_copy_prop.c 33 mir_foreach_instr_in_block_safe(block, ins) {
34 if (ins->type != TAG_ALU_4) continue;
35 if (!OP_IS_MOVE(ins->op)) continue;
36 if (ins->is_pack) continue;
38 unsigned from = ins->src[1];
39 unsigned to = ins->dest;
47 if (ins->has_inline_constant) continue;
48 if (ins->has_constants) continue;
51 if (mir_nontrivial_mod(ins, 1, false)) continue;
52 if (mir_nontrivial_outmod(ins)) continue
    [all...]
mir_squeeze.c 70 mir_foreach_instr_global(ctx, ins) {
71 if (ins->type == TAG_TEXTURE_4)
72 ins->dest = find_or_allocate_temp(ctx, map, ins->dest);
75 mir_foreach_instr_global(ctx, ins) {
76 if (ins->type != TAG_TEXTURE_4)
77 ins->dest = find_or_allocate_temp(ctx, map, ins->dest);
79 for (unsigned i = 0; i < ARRAY_SIZE(ins->src); ++i)
80 ins->src[i] = find_or_allocate_temp(ctx, map, ins->src[i])
    [all...]
midgard_opt_perspective.c 55 mir_foreach_instr_in_block_safe(block, ins) {
57 if (ins->type != TAG_ALU_4) continue;
58 if (ins->op != midgard_alu_op_fmul) continue;
64 if (!mir_is_simple_swizzle(ins->swizzle[0], ins->mask)) continue;
65 if (!is_swizzle_0(ins->swizzle[1])) continue;
68 unsigned frcp = ins->src[1];
69 unsigned to = ins->dest;
91 if (frcp_from != ins->src[0]) continue;
118 .mask = ins->mask
    [all...]
midgard_helper_invocations.c 69 mir_foreach_instr_in_block(block, ins) {
70 if (ins->type != TAG_TEXTURE_4) continue;
71 if (mir_op_computes_derivatives(stage, ins->op))
152 mir_foreach_instr_in_block_rev(block, ins) {
153 if (ins->type != TAG_TEXTURE_4) continue;
154 if (!mir_op_computes_derivatives(ctx->stage, ins->op)) continue;
156 ins->helper_terminate = true;
168 mir_foreach_instr_in_block_rev(block, ins) {
170 if (ins->dest >= temp_count || !BITSET_TEST(deps, ins->dest)
    [all...]
midgard_liveness.c 28 mir_liveness_ins_update(uint16_t *live, midgard_instruction *ins, unsigned max)
32 pan_liveness_kill(live, ins->dest, max, mir_bytemask(ins));
34 mir_foreach_src(ins, src) {
35 unsigned node = ins->src[src];
36 unsigned bytemask = mir_bytemask_of_read_components(ins, node);
43 mir_liveness_ins_update_wrap(uint16_t *live, void *ins, unsigned max)
45 mir_liveness_ins_update(live, (midgard_instruction *) ins, max);
89 mir_foreach_instr_in_block_from(block, ins, mir_next_op(start)) {
90 if (mir_has_arg(ins, src)
    [all...]
mir_promote_uniforms.c 40 mir_is_ubo(midgard_instruction *ins)
42 return (ins->type == TAG_LOAD_STORE_4) &&
43 (OP_IS_UBO_READ(ins->op));
47 mir_is_direct_aligned_ubo(midgard_instruction *ins)
49 return mir_is_ubo(ins) &&
50 !(ins->constants.u32[0] & 0xF) &&
51 (ins->src[1] == ~0) &&
52 (ins->src[2] == ~0);
79 mir_foreach_instr_global(ctx, ins) {
80 if (!mir_is_direct_aligned_ubo(ins)) continue
    [all...]
midgard_derivatives.c 101 midgard_instruction ins = { local
120 ins.mask &= instr->dest.write_mask;
122 emit_mir_instruction(ctx, ins);
128 mir_foreach_instr_in_block_safe(block, ins) {
129 if (ins->type != TAG_TEXTURE_4) continue;
130 if (ins->op != midgard_tex_op_derivative) continue;
134 bool upper = ins->mask & 0b1100;
135 bool lower = ins->mask & 0b0011;
142 memcpy(&dup, ins, sizeof(dup));
146 ins->mask &= 0b0011
    [all...]
midgard_address.c 228 mir_set_offset(compiler_context *ctx, midgard_instruction *ins, nir_src *offset, unsigned seg)
231 ins->swizzle[1][i] = 0;
232 ins->swizzle[2][i] = 0;
240 ins->load_store.bitsize_toggle = true;
241 ins->load_store.arg_comp = seg & 0x3;
242 ins->load_store.arg_reg = (seg >> 2) & 0x7;
243 ins->src[2] = nir_src_index(ctx, offset);
244 ins->src_types[2] = nir_type_uint | nir_src_bit_size(*offset);
247 ins->load_store.index_format = midgard_index_address_s32;
249 ins->load_store.index_format = midgard_index_address_u64
    [all...]
compiler.h 322 mir_upload_ins(struct compiler_context *ctx, struct midgard_instruction ins)
325 memcpy(heap, &ins, sizeof(ins));
330 emit_mir_instruction(struct compiler_context *ctx, struct midgard_instruction ins)
332 midgard_instruction *u = mir_upload_ins(ctx, ins);
340 struct midgard_instruction ins)
342 struct midgard_instruction *u = mir_upload_ins(ctx, ins);
348 mir_remove_instruction(struct midgard_instruction *ins)
350 list_del(&ins->link);
354 mir_prev_op(struct midgard_instruction *ins)
536 midgard_instruction ins = { local
571 midgard_instruction ins = { local
    [all...]
  /xsrc/external/mit/MesaLib/dist/src/panfrost/bifrost/
bi_lower_swizzle.c 34 bi_lower_swizzle_16(bi_context *ctx, bi_instr *ins, unsigned src)
37 if (ins->src[src].swizzle == BI_SWIZZLE_H01)
41 switch (ins->op) {
72 if (src == 0 && ins->src[src].swizzle != BI_SWIZZLE_H10)
91 bi_builder b = bi_init_builder(ctx, bi_after_instr(ins));
92 bi_index dest = ins->dest[0];
95 ins->dest[0] = tmp;
96 bi_swz_v2i16_to(&b, dest, bi_replace_index(ins->src[0], tmp));
105 if (ins->dest[0].swizzle == BI_SWIZZLE_H00 &&
106 ins->src[src].swizzle == BI_SWIZZLE_H00
    [all...]
bi_opt_copy_prop.c 30 bi_is_copy(bi_instr *ins)
32 return (ins->op == BI_OPCODE_MOV_I32) && bi_is_ssa(ins->dest[0])
33 && (bi_is_ssa(ins->src[0]) || ins->src[0].type == BI_INDEX_FAU
34 || ins->src[0].type == BI_INDEX_CONSTANT);
38 bi_reads_fau(bi_instr *ins)
40 bi_foreach_src(ins, s) {
41 if (ins->src[s].type == BI_INDEX_FAU)
53 bi_foreach_instr_global_safe(ctx, ins) {
    [all...]
bir.c 30 bi_has_arg(const bi_instr *ins, bi_index arg)
32 if (!ins)
35 bi_foreach_src(ins, s) {
36 if (bi_is_equiv(ins->src[s], arg))
66 bi_count_staging_registers(const bi_instr *ins)
68 enum bi_sr_count count = bi_opcode_props[ins->op].sr_count;
69 unsigned vecsize = ins->vecsize + 1; /* XXX: off-by-one */
75 return bi_is_regfmt_16(ins->register_format) ?
80 return ins->sr_count;
87 bi_count_read_registers(const bi_instr *ins, unsigned s
    [all...]
bi_opt_dce.c 46 bi_foreach_instr_in_block_safe_rev(block, ins) {
49 bi_foreach_dest(ins, d) {
50 unsigned index = bi_get_node(ins->dest[d]);
52 if (index < temp_count && !(live[index] & bi_writemask(ins, d)))
53 ins->dest[d] = bi_null();
55 all_null &= bi_is_null(ins->dest[d]);
58 if (all_null && !bi_side_effects(ins->op))
59 bi_remove_instruction(ins);
61 bi_liveness_ins_update(live, ins, temp_count);
72 bi_postra_liveness_ins(uint64_t live, bi_instr *ins)
    [all...]
bi_opt_push_ubo.c 33 bi_is_ubo(bi_instr *ins)
35 return (bi_opcode_props[ins->op].message == BIFROST_MESSAGE_LOAD) &&
36 (ins->seg == BI_SEG_UBO);
40 bi_is_direct_aligned_ubo(bi_instr *ins)
42 return bi_is_ubo(ins) &&
43 (ins->src[0].type == BI_INDEX_CONSTANT) &&
44 (ins->src[1].type == BI_INDEX_CONSTANT) &&
45 ((ins->src[0].value & 0x3) == 0);
72 bi_foreach_instr_global(ctx, ins) {
73 if (!bi_is_direct_aligned_ubo(ins)) continue
    [all...]
bifrost_isa.py 125 def parse_instruction(ins, include_pseudo):
132 'staging': ins.attrib.get('staging', '').split('=')[0],
133 'staging_count': ins.attrib.get('staging', '=0').split('=')[1],
134 'dests': int(ins.attrib.get('dests', '1')),
135 'unused': ins.attrib.get('unused', False),
136 'pseudo': ins.attrib.get('pseudo', False),
137 'message': ins.attrib.get('message', 'none'),
138 'last': ins.attrib.get('last', False),
139 'table': ins.attrib.get('table', False),
142 if 'exact' in ins.attrib
    [all...]
bi_liveness.c 35 bi_liveness_ins_update(uint8_t *live, bi_instr *ins, unsigned max)
39 bi_foreach_dest(ins, d) {
40 unsigned node = bi_get_node(ins->dest[d]);
43 live[node] &= ~bi_writemask(ins, d);
46 bi_foreach_src(ins, src) {
47 unsigned count = bi_count_read_registers(ins, src);
49 uint8_t mask = (rmask << ins->src[src].offset);
51 unsigned node = bi_get_node(ins->src[src]);
71 bi_foreach_instr_in_block_rev(blk, ins)
72 bi_liveness_ins_update(live, (bi_instr *) ins, temp_count)
    [all...]
bi_opt_constant_fold.c 87 bi_foreach_instr_global_safe(ctx, ins) {
89 uint32_t replace = bi_fold_constant(ins, &unsupported);
93 bi_builder b = bi_init_builder(ctx, bi_after_instr(ins));
94 bi_mov_i32_to(&b, ins->dest[0], bi_imm_u32(replace));
95 bi_remove_instruction(ins);
bi_ra.c 217 bi_foreach_instr_in_block_rev(block, ins) {
221 bi_foreach_dest(ins, d) {
222 unsigned node = bi_get_node(ins->dest[d]);
233 unsigned count = bi_count_write_registers(ins, d);
234 unsigned offset = ins->dest[d].offset;
246 bi_writemask(ins, d), i, live[i]);
252 if (aligned_sr && bi_count_read_registers(ins, 0) >= 2) {
253 unsigned node = bi_get_node(ins->src[0]);
259 if (!is_blend && ins->op == BI_OPCODE_BLEND) {
270 preload_live = bi_postra_liveness_ins(preload_live, ins);
    [all...]
  /xsrc/external/mit/MesaLib/dist/src/asahi/compiler/
agx_register_allocate.c 161 agx_foreach_instr_global_safe(ctx, ins) {
163 if (ins->op == AGX_OPCODE_P_COMBINE) {
165 assert(ins->dest[0].type == AGX_INDEX_NORMAL);
166 enum agx_size common_size = ins->dest[0].size;
167 unsigned base = ssa_to_reg[ins->dest[0].value];
171 agx_builder b = agx_init_builder(ctx, agx_after_instr(ins));
175 if (agx_is_null(ins->src[i])) continue;
176 unsigned base = ins->src[i].value;
177 if (ins->src[i].type == AGX_INDEX_NORMAL)
180 assert(ins->src[i].type == AGX_INDEX_REGISTER)
    [all...]
  /xsrc/external/mit/libXmu/dist/src/
Clip.c 260 XmuScanline *z, *p, *Z, *P, *ins, *top; local
283 ins = XmuNewScanline(dst->scanline->y, 0, 0);
285 XmuScanlineCopy(ins, dst->scanline);
309 if (ins->y >= top->y
311 || (ins->y <= P->y && !XmuScanlineEqu(ins, P))))
314 XmuScanlineOr(q, ins);
316 XmuScanlineXor(q, ins);
319 && (top->y == p->y || top->y > ins->y
323 || XmuScanlineEqu(ins, top))
868 XmuSegment *z, *p, ins; local
1027 XmuSegment *p, *z, ins; local
1135 XmuSegment *z, *p, *Z, ins; local
1348 XmuSegment *z, *p, *Z, ins; local
    [all...]

Completed in 57 milliseconds

1 2 3 4 5 6 7 8 91011>>