Lines Matching full:output
74 print_reg_class(const RegClass rc, FILE* output) in print_reg_class() argument
77 fprintf(output, " v%ub: ", rc.bytes()); in print_reg_class()
79 fprintf(output, " s%u: ", rc.size()); in print_reg_class()
81 fprintf(output, " lv%u: ", rc.size()); in print_reg_class()
83 fprintf(output, " v%u: ", rc.size()); in print_reg_class()
88 print_physReg(PhysReg reg, unsigned bytes, FILE* output, unsigned flags) in print_physReg() argument
91 fprintf(output, bytes > 4 ? "vcc" : "vcc_lo"); in print_physReg()
93 fprintf(output, "vcc_hi"); in print_physReg()
95 fprintf(output, "m0"); in print_physReg()
97 fprintf(output, "null"); in print_physReg()
99 fprintf(output, bytes > 4 ? "exec" : "exec_lo"); in print_physReg()
101 fprintf(output, "exec_hi"); in print_physReg()
103 fprintf(output, "scc"); in print_physReg()
109 fprintf(output, "%c%d", is_vgpr ? 'v' : 's', r); in print_physReg()
111 fprintf(output, "%c[%d", is_vgpr ? 'v' : 's', r); in print_physReg()
113 fprintf(output, "-%d]", r + size - 1); in print_physReg()
115 fprintf(output, "]"); in print_physReg()
118 fprintf(output, "[%d:%d]", reg.byte() * 8, (reg.byte() + bytes) * 8); in print_physReg()
123 print_constant(uint8_t reg, FILE* output) in print_constant() argument
126 fprintf(output, "%d", reg - 128); in print_constant()
129 fprintf(output, "%d", 192 - reg); in print_constant()
134 case 240: fprintf(output, "0.5"); break; in print_constant()
135 case 241: fprintf(output, "-0.5"); break; in print_constant()
136 case 242: fprintf(output, "1.0"); break; in print_constant()
137 case 243: fprintf(output, "-1.0"); break; in print_constant()
138 case 244: fprintf(output, "2.0"); break; in print_constant()
139 case 245: fprintf(output, "-2.0"); break; in print_constant()
140 case 246: fprintf(output, "4.0"); break; in print_constant()
141 case 247: fprintf(output, "-4.0"); break; in print_constant()
142 case 248: fprintf(output, "1/(2*PI)"); break; in print_constant()
147 print_definition(const Definition* definition, FILE* output, unsigned flags) in print_definition() argument
150 print_reg_class(definition->regClass(), output); in print_definition()
152 fprintf(output, "(precise)"); in print_definition()
154 fprintf(output, "("); in print_definition()
156 fprintf(output, "Sz"); in print_definition()
158 fprintf(output, "Inf"); in print_definition()
160 fprintf(output, "NaN"); in print_definition()
161 fprintf(output, "Preserve)"); in print_definition()
164 fprintf(output, "(nuw)"); in print_definition()
166 fprintf(output, "(noCSE)"); in print_definition()
168 fprintf(output, "(kill)"); in print_definition()
170 fprintf(output, "%%%d%s", definition->tempId(), definition->isFixed() ? ":" : ""); in print_definition()
173 print_physReg(definition->physReg(), definition->bytes(), output, flags); in print_definition()
177 print_storage(storage_class storage, FILE* output) in print_storage() argument
179 fprintf(output, " storage:"); in print_storage()
182 printed += fprintf(output, "%sbuffer", printed ? "," : ""); in print_storage()
184 printed += fprintf(output, "%sgds", printed ? "," : ""); in print_storage()
186 printed += fprintf(output, "%simage", printed ? "," : ""); in print_storage()
188 printed += fprintf(output, "%sshared", printed ? "," : ""); in print_storage()
190 printed += fprintf(output, "%stask_payload", printed ? "," : ""); in print_storage()
192 printed += fprintf(output, "%svmem_output", printed ? "," : ""); in print_storage()
194 printed += fprintf(output, "%sscratch", printed ? "," : ""); in print_storage()
196 printed += fprintf(output, "%svgpr_spill", printed ? "," : ""); in print_storage()
200 print_semantics(memory_semantics sem, FILE* output) in print_semantics() argument
202 fprintf(output, " semantics:"); in print_semantics()
205 printed += fprintf(output, "%sacquire", printed ? "," : ""); in print_semantics()
207 printed += fprintf(output, "%srelease", printed ? "," : ""); in print_semantics()
209 printed += fprintf(output, "%svolatile", printed ? "," : ""); in print_semantics()
211 printed += fprintf(output, "%sprivate", printed ? "," : ""); in print_semantics()
213 printed += fprintf(output, "%sreorder", printed ? "," : ""); in print_semantics()
215 printed += fprintf(output, "%satomic", printed ? "," : ""); in print_semantics()
217 printed += fprintf(output, "%srmw", printed ? "," : ""); in print_semantics()
221 print_scope(sync_scope scope, FILE* output, const char* prefix = "scope") in print_scope() argument
223 fprintf(output, " %s:", prefix); in print_scope()
225 case scope_invocation: fprintf(output, "invocation"); break; in print_scope()
226 case scope_subgroup: fprintf(output, "subgroup"); break; in print_scope()
227 case scope_workgroup: fprintf(output, "workgroup"); break; in print_scope()
228 case scope_queuefamily: fprintf(output, "queuefamily"); break; in print_scope()
229 case scope_device: fprintf(output, "device"); break; in print_scope()
234 print_sync(memory_sync_info sync, FILE* output) in print_sync() argument
237 print_storage(sync.storage, output); in print_sync()
239 print_semantics(sync.semantics, output); in print_sync()
241 print_scope(sync.scope, output); in print_sync()
246 print_cache_flags(enum amd_gfx_level gfx_level, const T& instr, FILE* output) in print_cache_flags() argument
251 fprintf(output, " atomic_return"); in print_cache_flags()
253 fprintf(output, " non_temporal"); in print_cache_flags()
255 fprintf(output, " accum_deferred_scope"); in print_cache_flags()
259 case gfx12_load_non_temporal: fprintf(output, " non_temporal"); break; in print_cache_flags()
260 case gfx12_load_high_temporal: fprintf(output, " high_temporal"); break; in print_cache_flags()
261 case gfx12_load_last_use_discard: fprintf(output, " last_use_discard"); break; in print_cache_flags()
263 fprintf(output, " near_non_temporal_far_regular_temporal"); in print_cache_flags()
266 fprintf(output, " near_regular_temporal_far_non_temporal"); in print_cache_flags()
269 fprintf(output, " near_non_temporal_far_high_temporal"); in print_cache_flags()
271 case gfx12_load_reserved: fprintf(output, " reserved"); break; in print_cache_flags()
272 default: fprintf(output, "tmp:%u", (unsigned)instr.cache.gfx12.temporal_hint); in print_cache_flags()
277 case gfx12_store_non_temporal: fprintf(output, " non_temporal"); break; in print_cache_flags()
278 case gfx12_store_high_temporal: fprintf(output, " high_temporal"); break; in print_cache_flags()
280 fprintf(output, " high_temporal_stay_dirty"); in print_cache_flags()
283 fprintf(output, " near_non_temporal_far_regular_temporal"); in print_cache_flags()
286 fprintf(output, " near_regular_temporal_far_non_temporal"); in print_cache_flags()
289 fprintf(output, " near_non_temporal_far_high_temporal"); in print_cache_flags()
292 fprintf(output, " near_non_temporal_far_writeback"); in print_cache_flags()
294 default: fprintf(output, "tmp:%u", (unsigned)instr.cache.gfx12.temporal_hint); in print_cache_flags()
299 case gfx12_scope_se: fprintf(output, " se"); break; in print_cache_flags()
300 case gfx12_scope_device: fprintf(output, " device"); break; in print_cache_flags()
301 case gfx12_scope_memory: fprintf(output, " memory"); break; in print_cache_flags()
304 fprintf(output, " swizzled"); in print_cache_flags()
307 fprintf(output, " glc"); in print_cache_flags()
309 fprintf(output, " slc"); in print_cache_flags()
311 fprintf(output, " dlc"); in print_cache_flags()
313 fprintf(output, " swizzled"); in print_cache_flags()
318 print_instr_format_specific(enum amd_gfx_level gfx_level, const Instruction* instr, FILE* output) in print_instr_format_specific() argument
323 fprintf(output, " imm:%d", sopk.imm & 0x8000 ? (sopk.imm - 65536) : sopk.imm); in print_instr_format_specific()
344 fprintf(output, " %s(%d)", names[i], unpacked[i]); in print_instr_format_specific()
356 fprintf(output, " imm:%u", imm); in print_instr_format_specific()
362 fprintf(output, " va_vdst(%d)", wait.va_vdst); in print_instr_format_specific()
364 fprintf(output, " va_sdst(%d)", wait.va_sdst); in print_instr_format_specific()
366 fprintf(output, " va_ssrc(%d)", wait.va_ssrc); in print_instr_format_specific()
368 fprintf(output, " holt_cnt(%d)", wait.hold_cnt); in print_instr_format_specific()
370 fprintf(output, " vm_vsrc(%d)", wait.vm_vsrc); in print_instr_format_specific()
372 fprintf(output, " va_vcc(%d)", wait.va_vcc); in print_instr_format_specific()
374 fprintf(output, " sa_sdst(%d)", wait.sa_sdst); in print_instr_format_specific()
383 fprintf(output, " next"); in print_instr_format_specific()
385 fprintf(output, " skip_%u", skip - 1); in print_instr_format_specific()
390 fprintf(output, " valu_dep_%u", delay[i]); in print_instr_format_specific()
392 fprintf(output, " trans32_dep_%u", in print_instr_format_specific()
395 fprintf(output, " fma_accum_cycle_1"); in print_instr_format_specific()
397 fprintf(output, " salu_cycle_%u", in print_instr_format_specific()
417 case sendmsg_none: fprintf(output, " sendmsg(MSG_NONE)"); break; in print_instr_format_specific()
420 fprintf(output, " sendmsg(hs_tessfactor)"); in print_instr_format_specific()
422 fprintf(output, " sendmsg(gs%s%s, %u)", imm & 0x10 ? ", cut" : "", in print_instr_format_specific()
427 fprintf(output, " sendmsg(dealloc_vgprs)"); in print_instr_format_specific()
429 fprintf(output, " sendmsg(gs_done%s%s, %u)", imm & 0x10 ? ", cut" : "", in print_instr_format_specific()
432 case sendmsg_save_wave: fprintf(output, " sendmsg(save_wave)"); break; in print_instr_format_specific()
433 case sendmsg_stall_wave_gen: fprintf(output, " sendmsg(stall_wave_gen)"); break; in print_instr_format_specific()
434 case sendmsg_halt_waves: fprintf(output, " sendmsg(halt_waves)"); break; in print_instr_format_specific()
435 case sendmsg_ordered_ps_done: fprintf(output, " sendmsg(ordered_ps_done)"); break; in print_instr_format_specific()
436 case sendmsg_early_prim_dealloc: fprintf(output, " sendmsg(early_prim_dealloc)"); break; in print_instr_format_specific()
437 case sendmsg_gs_alloc_req: fprintf(output, " sendmsg(gs_alloc_req)"); break; in print_instr_format_specific()
438 case sendmsg_get_doorbell: fprintf(output, " sendmsg(get_doorbell)"); break; in print_instr_format_specific()
439 case sendmsg_get_ddid: fprintf(output, " sendmsg(get_ddid)"); break; in print_instr_format_specific()
440 default: fprintf(output, " imm:%u", imm); in print_instr_format_specific()
446 fprintf(output, " wait_export_ready"); in print_instr_format_specific()
451 fprintf(output, " block:BB%d", imm); in print_instr_format_specific()
453 fprintf(output, " imm:%u", imm); in print_instr_format_specific()
464 case sendmsg_rtn_get_doorbell: fprintf(output, " sendmsg(rtn_get_doorbell)"); break; in print_instr_format_specific()
465 case sendmsg_rtn_get_ddid: fprintf(output, " sendmsg(rtn_get_ddid)"); break; in print_instr_format_specific()
466 case sendmsg_rtn_get_tma: fprintf(output, " sendmsg(rtn_get_tma)"); break; in print_instr_format_specific()
467 case sendmsg_rtn_get_realtime: fprintf(output, " sendmsg(rtn_get_realtime)"); break; in print_instr_format_specific()
468 case sendmsg_rtn_save_wave: fprintf(output, " sendmsg(rtn_save_wave)"); break; in print_instr_format_specific()
469 case sendmsg_rtn_get_tba: fprintf(output, " sendmsg(rtn_get_tba)"); break; in print_instr_format_specific()
478 print_cache_flags(gfx_level, smem, output); in print_instr_format_specific()
479 print_sync(smem.sync, output); in print_instr_format_specific()
485 fprintf(output, " wait_exp:%u", vinterp.wait_exp); in print_instr_format_specific()
490 fprintf(output, " attr%d.%c", vintrp.attribute, "xyzw"[vintrp.component]); in print_instr_format_specific()
492 fprintf(output, " high"); in print_instr_format_specific()
498 fprintf(output, " offset0:%u", ds.offset0); in print_instr_format_specific()
500 fprintf(output, " offset1:%u", ds.offset1); in print_instr_format_specific()
502 fprintf(output, " gds"); in print_instr_format_specific()
503 print_sync(ds.sync, output); in print_instr_format_specific()
509 fprintf(output, " attr%u.%c", ldsdir.attr, "xyzw"[ldsdir.attr_chan]); in print_instr_format_specific()
511 fprintf(output, " wait_vdst:%u", ldsdir.wait_vdst); in print_instr_format_specific()
513 fprintf(output, " wait_vsrc:%u", ldsdir.wait_vsrc); in print_instr_format_specific()
514 print_sync(ldsdir.sync, output); in print_instr_format_specific()
520 fprintf(output, " offset:%u", mubuf.offset); in print_instr_format_specific()
522 fprintf(output, " offen"); in print_instr_format_specific()
524 fprintf(output, " idxen"); in print_instr_format_specific()
526 fprintf(output, " addr64"); in print_instr_format_specific()
527 print_cache_flags(gfx_level, mubuf, output); in print_instr_format_specific()
529 fprintf(output, " tfe"); in print_instr_format_specific()
531 fprintf(output, " lds"); in print_instr_format_specific()
533 fprintf(output, " disable_wqm"); in print_instr_format_specific()
534 print_sync(mubuf.sync, output); in print_instr_format_specific()
545 fprintf(output, " dmask:%s%s%s%s", mimg.dmask & 0x1 ? "x" : "", in print_instr_format_specific()
549 case ac_image_1d: fprintf(output, " 1d"); break; in print_instr_format_specific()
550 case ac_image_2d: fprintf(output, " 2d"); break; in print_instr_format_specific()
551 case ac_image_3d: fprintf(output, " 3d"); break; in print_instr_format_specific()
552 case ac_image_cube: fprintf(output, " cube"); break; in print_instr_format_specific()
553 case ac_image_1darray: fprintf(output, " 1darray"); break; in print_instr_format_specific()
554 case ac_image_2darray: fprintf(output, " 2darray"); break; in print_instr_format_specific()
555 case ac_image_2dmsaa: fprintf(output, " 2dmsaa"); break; in print_instr_format_specific()
556 case ac_image_2darraymsaa: fprintf(output, " 2darraymsaa"); break; in print_instr_format_specific()
559 fprintf(output, " unrm"); in print_instr_format_specific()
560 print_cache_flags(gfx_level, mimg, output); in print_instr_format_specific()
562 fprintf(output, " tfe"); in print_instr_format_specific()
564 fprintf(output, " da"); in print_instr_format_specific()
566 fprintf(output, " lwe"); in print_instr_format_specific()
568 fprintf(output, " r128"); in print_instr_format_specific()
570 fprintf(output, " a16"); in print_instr_format_specific()
572 fprintf(output, " d16"); in print_instr_format_specific()
574 fprintf(output, " disable_wqm"); in print_instr_format_specific()
575 print_sync(mimg.sync, output); in print_instr_format_specific()
582 fprintf(output, " en:%c%c%c%c", exp.enabled_mask & 0x1 ? 'r' : '*', in print_instr_format_specific()
586 fprintf(output, " compr"); in print_instr_format_specific()
588 fprintf(output, " done"); in print_instr_format_specific()
590 fprintf(output, " vm"); in print_instr_format_specific()
593 fprintf(output, " mrt%d", exp.dest - V_008DFC_SQ_EXP_MRT); in print_instr_format_specific()
595 fprintf(output, " mrtz"); in print_instr_format_specific()
597 fprintf(output, " null"); in print_instr_format_specific()
599 fprintf(output, " pos%d", exp.dest - V_008DFC_SQ_EXP_POS); in print_instr_format_specific()
601 fprintf(output, " param%d", exp.dest - V_008DFC_SQ_EXP_PARAM); in print_instr_format_specific()
608 fprintf(output, " BB%d", branch.target[0]); in print_instr_format_specific()
610 fprintf(output, ", BB%d", branch.target[1]); in print_instr_format_specific()
612 fprintf(output, " rarely_taken"); in print_instr_format_specific()
614 fprintf(output, " never_taken"); in print_instr_format_specific()
619 fprintf(output, " op:%s", reduce_ops[reduce.reduce_op]); in print_instr_format_specific()
621 fprintf(output, " cluster_size:%u", reduce.cluster_size); in print_instr_format_specific()
626 print_sync(barrier.sync, output); in print_instr_format_specific()
627 print_scope(barrier.exec_scope, output, "exec_scope"); in print_instr_format_specific()
635 fprintf(output, " offset:%d", flat.offset); in print_instr_format_specific()
636 print_cache_flags(gfx_level, flat, output); in print_instr_format_specific()
638 fprintf(output, " lds"); in print_instr_format_specific()
640 fprintf(output, " nv"); in print_instr_format_specific()
642 fprintf(output, " disable_wqm"); in print_instr_format_specific()
643 print_sync(flat.sync, output); in print_instr_format_specific()
648 fprintf(output, " dfmt:"); in print_instr_format_specific()
650 case V_008F0C_BUF_DATA_FORMAT_8: fprintf(output, "8"); break; in print_instr_format_specific()
651 case V_008F0C_BUF_DATA_FORMAT_16: fprintf(output, "16"); break; in print_instr_format_specific()
652 case V_008F0C_BUF_DATA_FORMAT_8_8: fprintf(output, "8_8"); break; in print_instr_format_specific()
653 case V_008F0C_BUF_DATA_FORMAT_32: fprintf(output, "32"); break; in print_instr_format_specific()
654 case V_008F0C_BUF_DATA_FORMAT_16_16: fprintf(output, "16_16"); break; in print_instr_format_specific()
655 case V_008F0C_BUF_DATA_FORMAT_10_11_11: fprintf(output, "10_11_11"); break; in print_instr_format_specific()
656 case V_008F0C_BUF_DATA_FORMAT_11_11_10: fprintf(output, "11_11_10"); break; in print_instr_format_specific()
657 case V_008F0C_BUF_DATA_FORMAT_10_10_10_2: fprintf(output, "10_10_10_2"); break; in print_instr_format_specific()
658 case V_008F0C_BUF_DATA_FORMAT_2_10_10_10: fprintf(output, "2_10_10_10"); break; in print_instr_format_specific()
659 case V_008F0C_BUF_DATA_FORMAT_8_8_8_8: fprintf(output, "8_8_8_8"); break; in print_instr_format_specific()
660 case V_008F0C_BUF_DATA_FORMAT_32_32: fprintf(output, "32_32"); break; in print_instr_format_specific()
661 case V_008F0C_BUF_DATA_FORMAT_16_16_16_16: fprintf(output, "16_16_16_16"); break; in print_instr_format_specific()
662 case V_008F0C_BUF_DATA_FORMAT_32_32_32: fprintf(output, "32_32_32"); break; in print_instr_format_specific()
663 case V_008F0C_BUF_DATA_FORMAT_32_32_32_32: fprintf(output, "32_32_32_32"); break; in print_instr_format_specific()
664 case V_008F0C_BUF_DATA_FORMAT_RESERVED_15: fprintf(output, "reserved15"); break; in print_instr_format_specific()
666 fprintf(output, " nfmt:"); in print_instr_format_specific()
668 case V_008F0C_BUF_NUM_FORMAT_UNORM: fprintf(output, "unorm"); break; in print_instr_format_specific()
669 case V_008F0C_BUF_NUM_FORMAT_SNORM: fprintf(output, "snorm"); break; in print_instr_format_specific()
670 case V_008F0C_BUF_NUM_FORMAT_USCALED: fprintf(output, "uscaled"); break; in print_instr_format_specific()
671 case V_008F0C_BUF_NUM_FORMAT_SSCALED: fprintf(output, "sscaled"); break; in print_instr_format_specific()
672 case V_008F0C_BUF_NUM_FORMAT_UINT: fprintf(output, "uint"); break; in print_instr_format_specific()
673 case V_008F0C_BUF_NUM_FORMAT_SINT: fprintf(output, "sint"); break; in print_instr_format_specific()
674 case V_008F0C_BUF_NUM_FORMAT_SNORM_OGL: fprintf(output, "snorm"); break; in print_instr_format_specific()
675 case V_008F0C_BUF_NUM_FORMAT_FLOAT: fprintf(output, "float"); break; in print_instr_format_specific()
678 fprintf(output, " offset:%u", mtbuf.offset); in print_instr_format_specific()
680 fprintf(output, " offen"); in print_instr_format_specific()
682 fprintf(output, " idxen"); in print_instr_format_specific()
683 print_cache_flags(gfx_level, mtbuf, output); in print_instr_format_specific()
685 fprintf(output, " tfe"); in print_instr_format_specific()
687 fprintf(output, " disable_wqm"); in print_instr_format_specific()
688 print_sync(mtbuf.sync, output); in print_instr_format_specific()
698 case 1: fprintf(output, " *2"); break; in print_instr_format_specific()
699 case 2: fprintf(output, " *4"); break; in print_instr_format_specific()
700 case 3: fprintf(output, " *0.5"); break; in print_instr_format_specific()
703 fprintf(output, " clamp"); in print_instr_format_specific()
705 fprintf(output, " opsel_hi"); in print_instr_format_specific()
717 fprintf(output, " quad_perm:[%d,%d,%d,%d]", dpp.dpp_ctrl & 0x3, (dpp.dpp_ctrl >> 2) & 0x3, in print_instr_format_specific()
720 fprintf(output, " row_shl:%d", dpp.dpp_ctrl & 0xf); in print_instr_format_specific()
722 fprintf(output, " row_shr:%d", dpp.dpp_ctrl & 0xf); in print_instr_format_specific()
724 fprintf(output, " row_ror:%d", dpp.dpp_ctrl & 0xf); in print_instr_format_specific()
726 fprintf(output, " wave_shl:1"); in print_instr_format_specific()
728 fprintf(output, " wave_rol:1"); in print_instr_format_specific()
730 fprintf(output, " wave_shr:1"); in print_instr_format_specific()
732 fprintf(output, " wave_ror:1"); in print_instr_format_specific()
734 fprintf(output, " row_mirror"); in print_instr_format_specific()
736 fprintf(output, " row_half_mirror"); in print_instr_format_specific()
738 fprintf(output, " row_bcast:15"); in print_instr_format_specific()
740 fprintf(output, " row_bcast:31"); in print_instr_format_specific()
742 fprintf(output, " row_share:%d", dpp.dpp_ctrl & 0xf); in print_instr_format_specific()
744 fprintf(output, " row_xmask:%d", dpp.dpp_ctrl & 0xf); in print_instr_format_specific()
746 fprintf(output, " dpp_ctrl:0x%.3x", dpp.dpp_ctrl); in print_instr_format_specific()
749 fprintf(output, " row_mask:0x%.1x", dpp.row_mask); in print_instr_format_specific()
751 fprintf(output, " bank_mask:0x%.1x", dpp.bank_mask); in print_instr_format_specific()
756 fprintf(output, " dpp8:["); in print_instr_format_specific()
758 fprintf(output, "%s%u", i ? "," : "", (dpp.lane_sel >> (i * 3)) & 0x7); in print_instr_format_specific()
759 fprintf(output, "]"); in print_instr_format_specific()
769 case 1: fprintf(output, " dst_sel:%cbyte%u", sext, offset); break; in print_instr_format_specific()
770 case 2: fprintf(output, " dst_sel:%cword%u", sext, offset >> 1); break; in print_instr_format_specific()
771 case 4: fprintf(output, " dst_sel:dword"); break; in print_instr_format_specific()
775 fprintf(output, " dst_preserve"); in print_instr_format_specific()
783 case 1: fprintf(output, " src%d_sel:%cbyte%u", i, sext, offset); break; in print_instr_format_specific()
784 case 2: fprintf(output, " src%d_sel:%cword%u", i, sext, offset >> 1); break; in print_instr_format_specific()
785 case 4: fprintf(output, " src%d_sel:dword", i); break; in print_instr_format_specific()
792 fprintf(output, " bound_ctrl:1"); in print_instr_format_specific()
794 fprintf(output, " fi"); in print_instr_format_specific()
798 print_vopd_instr(enum amd_gfx_level gfx_level, const Instruction* instr, FILE* output, in print_vopd_instr() argument
804 print_definition(&instr->definitions[0], output, flags); in print_vopd_instr()
805 fprintf(output, " = "); in print_vopd_instr()
807 fprintf(output, "%s", instr_info.name[(int)instr->opcode]); in print_vopd_instr()
809 fprintf(output, i ? ", " : " "); in print_vopd_instr()
810 aco_print_operand(&instr->operands[i], output, flags); in print_vopd_instr()
813 fprintf(output, " ::"); in print_vopd_instr()
816 print_definition(&instr->definitions[1], output, flags); in print_vopd_instr()
817 fprintf(output, " = "); in print_vopd_instr()
819 fprintf(output, "%s", instr_info.name[(int)instr->vopd().opy]); in print_vopd_instr()
821 fprintf(output, i > opy_start ? ", " : " "); in print_vopd_instr()
822 aco_print_operand(&instr->operands[i], output, flags); in print_vopd_instr()
827 print_block_kind(uint16_t kind, FILE* output) in print_block_kind() argument
830 fprintf(output, "uniform, "); in print_block_kind()
832 fprintf(output, "top-level, "); in print_block_kind()
834 fprintf(output, "loop-preheader, "); in print_block_kind()
836 fprintf(output, "loop-header, "); in print_block_kind()
838 fprintf(output, "loop-exit, "); in print_block_kind()
840 fprintf(output, "continue, "); in print_block_kind()
842 fprintf(output, "break, "); in print_block_kind()
844 fprintf(output, "continue_or_break, "); in print_block_kind()
846 fprintf(output, "branch, "); in print_block_kind()
848 fprintf(output, "merge, "); in print_block_kind()
850 fprintf(output, "invert, "); in print_block_kind()
852 fprintf(output, "discard_early_exit, "); in print_block_kind()
854 fprintf(output, "discard, "); in print_block_kind()
856 fprintf(output, "resume, "); in print_block_kind()
858 fprintf(output, "export_end, "); in print_block_kind()
860 fprintf(output, "end_with_regs, "); in print_block_kind()
864 print_stage(Stage stage, FILE* output) in print_stage() argument
866 fprintf(output, "ACO shader stage: SW ("); in print_stage()
870 case SWStage::VS: fprintf(output, "VS"); break; in print_stage()
871 case SWStage::GS: fprintf(output, "GS"); break; in print_stage()
872 case SWStage::TCS: fprintf(output, "TCS"); break; in print_stage()
873 case SWStage::TES: fprintf(output, "TES"); break; in print_stage()
874 case SWStage::FS: fprintf(output, "FS"); break; in print_stage()
875 case SWStage::CS: fprintf(output, "CS"); break; in print_stage()
876 case SWStage::TS: fprintf(output, "TS"); break; in print_stage()
877 case SWStage::MS: fprintf(output, "MS"); break; in print_stage()
878 case SWStage::RT: fprintf(output, "RT"); break; in print_stage()
882 fprintf(output, "+"); in print_stage()
885 fprintf(output, "), HW ("); in print_stage()
888 case AC_HW_LOCAL_SHADER: fprintf(output, "LOCAL_SHADER"); break; in print_stage()
889 case AC_HW_HULL_SHADER: fprintf(output, "HULL_SHADER"); break; in print_stage()
890 case AC_HW_EXPORT_SHADER: fprintf(output, "EXPORT_SHADER"); break; in print_stage()
891 case AC_HW_LEGACY_GEOMETRY_SHADER: fprintf(output, "LEGACY_GEOMETRY_SHADER"); break; in print_stage()
892 case AC_HW_VERTEX_SHADER: fprintf(output, "VERTEX_SHADER"); break; in print_stage()
893 case AC_HW_NEXT_GEN_GEOMETRY_SHADER: fprintf(output, "NEXT_GEN_GEOMETRY_SHADER"); break; in print_stage()
894 case AC_HW_PIXEL_SHADER: fprintf(output, "PIXEL_SHADER"); break; in print_stage()
895 case AC_HW_COMPUTE_SHADER: fprintf(output, "COMPUTE_SHADER"); break; in print_stage()
899 fprintf(output, ")\n"); in print_stage()
903 print_debug_info(const Program* program, const Instruction* instr, FILE* output) in print_debug_info() argument
905 fprintf(output, "// "); in print_debug_info()
912 fprintf(output, "0x%x ", info.src_loc.spirv_offset); in print_debug_info()
913 fprintf(output, "%s:%u:%u", info.src_loc.file, info.src_loc.line, info.src_loc.column); in print_debug_info()
917 fprintf(output, "\n"); in print_debug_info()
921 aco_print_block(enum amd_gfx_level gfx_level, const Block* block, FILE* output, unsigned flags, in aco_print_block() argument
927 fprintf(output, "BB%d\n", block->index); in aco_print_block()
928 fprintf(output, "/* logical preds: "); in aco_print_block()
930 fprintf(output, "BB%d, ", pred); in aco_print_block()
931 fprintf(output, "/ linear preds: "); in aco_print_block()
933 fprintf(output, "BB%d, ", pred); in aco_print_block()
934 fprintf(output, "/ kind: "); in aco_print_block()
935 print_block_kind(block->kind, output); in aco_print_block()
936 fprintf(output, "*/\n"); in aco_print_block()
939 fprintf(output, "\tlive in:"); in aco_print_block()
941 fprintf(output, " %%%d", id); in aco_print_block()
942 fprintf(output, "\n"); in aco_print_block()
945 fprintf(output, "\tdemand: %u vgpr, %u sgpr\n", demand.vgpr, demand.sgpr); in aco_print_block()
949 fprintf(output, "\t"); in aco_print_block()
951 print_debug_info(program, instr.get(), output); in aco_print_block()
956 fprintf(output, "(%3u vgpr, %3u sgpr) ", demand.vgpr, demand.sgpr); in aco_print_block()
959 fprintf(output, "(%3u clk) ", instr->pass_flags); in aco_print_block()
961 aco_print_instr(gfx_level, instr.get(), output, flags); in aco_print_block()
962 fprintf(output, "\n"); in aco_print_block()
969 aco_print_operand(const Operand* operand, FILE* output, unsigned flags) in aco_print_operand() argument
973 fprintf(output, "0x%.2x", operand->constantValue()); in aco_print_operand()
975 fprintf(output, "0x%.4x", operand->constantValue()); in aco_print_operand()
977 fprintf(output, "0x%x", operand->constantValue()); in aco_print_operand()
979 print_constant(operand->physReg().reg(), output); in aco_print_operand()
981 print_reg_class(operand->regClass(), output); in aco_print_operand()
982 fprintf(output, "undef"); in aco_print_operand()
985 fprintf(output, "(latekill)"); in aco_print_operand()
987 fprintf(output, "(is16bit)"); in aco_print_operand()
989 fprintf(output, "(is24bit)"); in aco_print_operand()
991 fprintf(output, "(kill)"); in aco_print_operand()
994 fprintf(output, "%%%d%s", operand->tempId(), operand->isFixed() ? ":" : ""); in aco_print_operand()
997 print_physReg(operand->physReg(), operand->bytes(), output, flags); in aco_print_operand()
1002 aco_print_instr(enum amd_gfx_level gfx_level, const Instruction* instr, FILE* output, in aco_print_instr() argument
1006 print_vopd_instr(gfx_level, instr, output, flags); in aco_print_instr()
1012 print_definition(&instr->definitions[i], output, flags); in aco_print_instr()
1014 fprintf(output, ", "); in aco_print_instr()
1016 fprintf(output, " = "); in aco_print_instr()
1018 fprintf(output, "%s", instr_info.name[(int)instr->opcode]); in aco_print_instr()
1054 fprintf(output, ", "); in aco_print_instr()
1056 fprintf(output, " "); in aco_print_instr()
1060 fprintf(output, "neg("); in aco_print_instr()
1062 fprintf(output, "-"); in aco_print_instr()
1064 fprintf(output, "|"); in aco_print_instr()
1066 fprintf(output, "hi("); in aco_print_instr()
1068 fprintf(output, "lo("); in aco_print_instr()
1071 aco_print_operand(&instr->operands[i], output, flags); in aco_print_instr()
1075 fprintf(output, ")"); in aco_print_instr()
1077 fprintf(output, "|"); in aco_print_instr()
1080 fprintf(output, ".%c%c", opsel_lo[i] ? 'y' : 'x', opsel_hi[i] ? 'y' : 'x'); in aco_print_instr()
1083 fprintf(output, ")"); in aco_print_instr()
1085 fprintf(output, "*[-1,1]"); in aco_print_instr()
1087 fprintf(output, "*[1,-1]"); in aco_print_instr()
1091 print_instr_format_specific(gfx_level, instr, output); in aco_print_instr()
1095 aco_print_program(const Program* program, FILE* output, unsigned flags) in aco_print_program() argument
1098 case CompilationProgress::after_isel: fprintf(output, "After Instruction Selection:\n"); break; in aco_print_program()
1100 fprintf(output, "After Spilling:\n"); in aco_print_program()
1103 case CompilationProgress::after_ra: fprintf(output, "After RA:\n"); break; in aco_print_program()
1105 fprintf(output, "After lowering to hw instructions:\n"); in aco_print_program()
1109 print_stage(program->stage, output); in aco_print_program()
1112 aco_print_block(program->gfx_level, &block, output, flags, program); in aco_print_program()
1115 fprintf(output, "\n/* constant data */\n"); in aco_print_program()
1117 fprintf(output, "[%06d] ", i); in aco_print_program()
1123 fprintf(output, " %08x", v); in aco_print_program()
1125 fprintf(output, "\n"); in aco_print_program()
1129 fprintf(output, "\n"); in aco_print_program()