| /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...] |