Lines Matching refs:predicate
659 struct midgard_predicate *predicate) in mir_choose_instruction() argument
662 unsigned tag = predicate->tag; in mir_choose_instruction()
663 unsigned unit = predicate->unit; in mir_choose_instruction()
665 bool no_cond = predicate->no_cond; in mir_choose_instruction()
667 unsigned mask = predicate->mask; in mir_choose_instruction()
668 unsigned dest = predicate->dest; in mir_choose_instruction()
710 if (predicate->exclude != ~0 && instructions[i]->dest == predicate->exclude) in mir_choose_instruction()
717 if (predicate->move_mode && ((predicate->move_mode - 1) != is_move)) in mir_choose_instruction()
726 … if (alu && predicate->constants && !mir_adjust_constants(instructions[i], predicate, false)) in mir_choose_instruction()
735 if (instructions[i]->mask & predicate->no_mask) in mir_choose_instruction()
738 if (ldst && mir_pipeline_count(instructions[i]) + predicate->pipeline_count > 2) in mir_choose_instruction()
769 if (predicate->destructive) { in mir_choose_instruction()
773 mir_adjust_constants(instructions[best_index], predicate, true); in mir_choose_instruction()
776 predicate->pipeline_count += mir_pipeline_count(instructions[best_index]); in mir_choose_instruction()
782 predicate->no_cond |= best_conditional; in mir_choose_instruction()
803 struct midgard_predicate predicate = { in mir_choose_bundle() local
810 …_instruction *chosen = mir_choose_instruction(instructions, liveness, worklist, count, &predicate); in mir_choose_bundle()
815 predicate.exclude = chosen->dest; in mir_choose_bundle()
816 predicate.tag = TAG_LOAD_STORE_4; in mir_choose_bundle()
818 … chosen = mir_choose_instruction(instructions, liveness, worklist, count, &predicate); in mir_choose_bundle()
822 predicate.tag = ~0; in mir_choose_bundle()
824 … chosen = mir_choose_instruction(instructions, liveness, worklist, count, &predicate); in mir_choose_bundle()
845 struct midgard_predicate *predicate, in mir_choose_alu() argument
853 predicate->unit = unit; in mir_choose_alu()
854 *slot = mir_choose_instruction(instructions, liveness, worklist, len, predicate); in mir_choose_alu()
879 struct midgard_predicate *predicate, in mir_comparison_mobile() argument
908 if (!mir_adjust_constants(instructions[i], predicate, false)) in mir_comparison_mobile()
921 mir_adjust_constants(instructions[ret], predicate, true); in mir_comparison_mobile()
934 struct midgard_predicate *predicate, in mir_schedule_comparison() argument
942 mir_comparison_mobile(ctx, instructions, predicate, count, cond) : ~0; in mir_schedule_comparison()
965 struct midgard_predicate *predicate, in mir_schedule_condition() argument
980 ctx, instructions, predicate, worklist, count, last->src[condition_index], in mir_schedule_condition()
986 predicate->exclude = cond->dest; in mir_schedule_condition()
1025 struct midgard_predicate predicate = { in mir_schedule_texture() local
1032 mir_choose_instruction(instructions, liveness, worklist, len, &predicate); in mir_schedule_texture()
1055 struct midgard_predicate predicate = { in mir_schedule_ldst() local
1064 mir_choose_instruction(instructions, liveness, worklist, len, &predicate); in mir_schedule_ldst()
1067 mir_choose_instruction(instructions, liveness, worklist, len, &predicate); in mir_schedule_ldst()
1091 struct midgard_predicate *predicate, in mir_schedule_zs_write() argument
1105 predicate->dest = src; in mir_schedule_zs_write()
1106 predicate->mask = 0x1; in mir_schedule_zs_write()
1115 predicate->unit = unit_names[i]; in mir_schedule_zs_write()
1117 mir_choose_instruction(instructions, liveness, worklist, len, predicate); in mir_schedule_zs_write()
1127 predicate->dest = predicate->mask = 0; in mir_schedule_zs_write()
1167 struct midgard_predicate predicate = { in mir_schedule_alu() local
1181 … mir_choose_alu(&branch, instructions, liveness, worklist, len, &predicate, ALU_ENAB_BR_COMPACT); in mir_schedule_alu()
1186 …midgard_instruction *cond = mir_schedule_condition(ctx, &predicate, worklist, len, instructions, b… in mir_schedule_alu()
1220 predicate.no_cond = true; in mir_schedule_alu()
1256 …mir_schedule_zs_write(ctx, &predicate, instructions, liveness, worklist, len, branch, &smul, &vadd… in mir_schedule_alu()
1259 …mir_schedule_zs_write(ctx, &predicate, instructions, liveness, worklist, len, branch, &smul, &vadd… in mir_schedule_alu()
1261 mir_choose_alu(&smul, instructions, liveness, worklist, len, &predicate, UNIT_SMUL); in mir_schedule_alu()
1264 predicate.move_mode = mode; in mir_schedule_alu()
1265 predicate.no_mask = writeout ? (1 << 3) : 0; in mir_schedule_alu()
1266 mir_choose_alu(&vlut, instructions, liveness, worklist, len, &predicate, UNIT_VLUT); in mir_schedule_alu()
1267 predicate.no_mask = 0; in mir_schedule_alu()
1268 mir_choose_alu(&vadd, instructions, liveness, worklist, len, &predicate, UNIT_VADD); in mir_schedule_alu()
1272 predicate.move_mode = 0; in mir_schedule_alu()
1283 …midgard_instruction *cond = mir_schedule_condition(ctx, &predicate, worklist, len, instructions, i… in mir_schedule_alu()
1294 mir_choose_alu(&sadd, instructions, liveness, worklist, len, &predicate, UNIT_SADD); in mir_schedule_alu()
1322 predicate.unit = UNIT_VMUL; in mir_schedule_alu()
1323 predicate.dest = src; in mir_schedule_alu()
1324 predicate.mask = writeout_mask ^ full_mask; in mir_schedule_alu()
1327 … mir_choose_instruction(instructions, liveness, worklist, len, &predicate); in mir_schedule_alu()
1332 writeout_mask |= predicate.mask; in mir_schedule_alu()
1337 predicate.dest = predicate.mask = 0; in mir_schedule_alu()
1362 mir_choose_alu(&vmul, instructions, liveness, worklist, len, &predicate, UNIT_VMUL); in mir_schedule_alu()
1367 bundle.has_embedded_constants = predicate.constant_mask != 0; in mir_schedule_alu()