Lines Matching refs:instr
275 print_instr_format_specific(const Instruction* instr, FILE* output)
277 switch (instr->format) {
279 const SOPK_instruction& sopk = instr->sopk();
284 uint16_t imm = instr->sopp().imm;
285 switch (instr->opcode) {
335 if (instr->sopp().block != -1)
336 fprintf(output, " block:BB%d", instr->sopp().block);
340 const SMEM_instruction& smem = instr->smem();
351 const Interp_instruction& vintrp = instr->vintrp();
356 const DS_instruction& ds = instr->ds();
367 const MUBUF_instruction& mubuf = instr->mubuf();
392 const MIMG_instruction& mimg = instr->mimg();
394 !instr->definitions.empty() ? (1 << instr->definitions[0].size()) - 1 : 0xf;
435 const Export_instruction& exp = instr->exp();
461 const Pseudo_branch_instruction& branch = instr->branch();
470 const Pseudo_reduction_instruction& reduce = instr->reduction();
477 const Pseudo_barrier_instruction& barrier = instr->barrier();
485 const FLAT_instruction& flat = instr->flatlike();
504 const MTBUF_instruction& mtbuf = instr->mtbuf();
554 if (instr->vop3p().clamp)
562 if (instr->isVOP3()) {
563 const VOP3_instruction& vop3 = instr->vop3();
573 } else if (instr->isDPP16()) {
574 const DPP16_instruction& dpp = instr->dpp16();
609 } else if (instr->isDPP8()) {
610 const DPP8_instruction& dpp = instr->dpp8();
614 } else if (instr->isSDWA()) {
615 const SDWA_instruction& sdwa = instr->sdwa();
623 if (!instr->isVOPC()) {
626 if (instr->definitions[0].isFixed())
627 offset += instr->definitions[0].physReg().byte();
634 if (instr->definitions[0].bytes() < 4)
637 for (unsigned i = 0; i < std::min<unsigned>(2, instr->operands.size()); i++) {
640 if (instr->operands[i].isFixed())
641 offset += instr->operands[i].physReg().byte();
653 aco_print_instr(const Instruction* instr, FILE* output, unsigned flags)
655 if (!instr->definitions.empty()) {
656 for (unsigned i = 0; i < instr->definitions.size(); ++i) {
657 print_definition(&instr->definitions[i], output, flags);
658 if (i + 1 != instr->definitions.size())
663 fprintf(output, "%s", instr_info.name[(int)instr->opcode]);
664 if (instr->operands.size()) {
665 const unsigned num_operands = instr->operands.size();
676 bool is_mad_mix = instr->opcode == aco_opcode::v_fma_mix_f32 ||
677 instr->opcode == aco_opcode::v_fma_mixlo_f16 ||
678 instr->opcode == aco_opcode::v_fma_mixhi_f16;
679 if (instr->isVOP3()) {
680 const VOP3_instruction& vop3 = instr->vop3();
686 } else if (instr->isDPP16()) {
687 const DPP16_instruction& dpp = instr->dpp16();
693 } else if (instr->isSDWA()) {
694 const SDWA_instruction& sdwa = instr->sdwa();
700 } else if (instr->isVOP3P() && is_mad_mix) {
701 const VOP3P_instruction& vop3p = instr->vop3p();
723 aco_print_operand(&instr->operands[i], output, flags);
729 if (instr->isVOP3P() && !is_mad_mix) {
730 const VOP3P_instruction& vop3 = instr->vop3p();
744 print_instr_format_specific(instr, output);
854 for (auto const& instr : block->instructions) {
861 fprintf(output, "(%3u clk) ", instr->pass_flags);
863 aco_print_instr(instr.get(), output, flags);