Lines Matching refs:fma

390         bi_instr *fma = bi_seg_add_to(&b, pinstr->dest[0], pinstr->src[0],
400 return fma;
535 return bi_opcode_props[ins->op].fma;
788 bi_instr *instr, bool fma, bool destructive)
823 if (src.value == 0 && fma && bi_reads_zero(instr))
939 bi_has_staging_passthrough_hazard(bi_index fma, bi_instr *add)
951 read |= bi_is_equiv(fma, bi_register(src.value + d));
1039 bool fma)
1042 if ((fma && !bi_can_fma(instr)) || (!fma && !bi_can_add(instr)))
1099 if (!bi_update_fau(clause, tuple, instr, fma, false))
1179 bool fma)
1187 if (!bi_instr_schedulable(instr, clause, tuple, live_after_temp, fma))
1208 bi_instr *instr, uint64_t live_after_temp, bool fma)
1210 bi_update_fau(clause, tuple, instr, fma, true);
1241 bool fma)
1255 if (!fma && tuple->nr_prev_reads > 3) {
1265 bi_pop_instr(clause, tuple, mov, live_after_temp, fma);
1275 unsigned idx = bi_choose_index(st, clause, tuple, live_after_temp, fma);
1285 bi_pop_instr(clause, tuple, instr, live_after_temp, fma);
1288 if (instr->op == BI_OPCODE_IADD_U32 && fma) {
1292 } else if (fma && bi_can_replace_with_csel(instr)) {
1340 bi_use_passthrough(succ.fma, prec.add->dest[0], BIFROST_SRC_PASS_ADD, false);
1344 if (prec.fma) {
1345 bi_use_passthrough(succ.fma, prec.fma->dest[0], BIFROST_SRC_PASS_FMA, false);
1346 bi_use_passthrough(succ.add, prec.fma->dest[0], BIFROST_SRC_PASS_FMA, sr_read);
1364 bi_rewrite_zero(bi_instr *ins, bool fma)
1366 bi_index zero = bi_passthrough(fma ? BIFROST_SRC_STAGE : BIFROST_SRC_FAU_LO);
1712 tuple->fma = bi_take_instr(ctx, st, &clause_state, &tuple_state, live_after_temp, true);
1719 if (tuple->fma)
1720 *live = bi_postra_liveness_ins(*live, tuple->fma);
1762 if (tuple->fma && bi_reads_zero(tuple->fma))
1763 bi_rewrite_zero(tuple->fma, true);
1776 if (tuple->fma) {
1777 bi_use_passthrough(tuple->add, tuple->fma->dest[0],
1791 if (!(tuple->fma || tuple->add || insert_empty))
1969 if (src.value == 0 && bi_opcode_props[ins->op].fma && bi_reads_zero(ins))
2070 .tuples[0] = { .fma = I, },