Lines Matching refs:mad
66 * (2) The second pass combines instructions like mad, omod, clamp and
70 * i.e. decides if a mad instruction is profitable and eliminates dead code.
285 void set_mad(Instruction* mad, uint32_t mad_info_idx)
288 mad->pass_flags = mad_info_idx;
289 instr = mad;
3195 /* convert to mad */
3207 aco_opcode mad = fadd ? aco_opcode::v_pk_fma_f16 : aco_opcode::v_pk_mad_u16;
3209 create_instruction<VOP3P_instruction>(mad, Format::VOP3P, 3, 1)};
3346 /* combine mul+add -> mad */
3443 aco_ptr<VOP3_instruction> mad{
3446 mad->operands[i] = op[i];
3447 mad->neg[i] = neg[i];
3448 mad->abs[i] = abs[i];
3450 mad->omod = omod;
3451 mad->clamp = clamp;
3452 mad->definitions[0] = instr->definitions[0];
3456 ctx.info[mad->definitions[0].tempId()].set_mad(mad.get(), ctx.mad_infos.size() - 1);
3457 instr = std::move(mad);
3701 /* re-check mad instructions */