Lines Matching defs:predicate

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