Lines Matching refs:output
60 static void print_reg_class(const RegClass rc, FILE *output) in print_reg_class() argument
63 case RegClass::s1: fprintf(output, " s1: "); return; in print_reg_class()
64 case RegClass::s2: fprintf(output, " s2: "); return; in print_reg_class()
65 case RegClass::s3: fprintf(output, " s3: "); return; in print_reg_class()
66 case RegClass::s4: fprintf(output, " s4: "); return; in print_reg_class()
67 case RegClass::s6: fprintf(output, " s6: "); return; in print_reg_class()
68 case RegClass::s8: fprintf(output, " s8: "); return; in print_reg_class()
69 case RegClass::s16: fprintf(output, "s16: "); return; in print_reg_class()
70 case RegClass::v1: fprintf(output, " v1: "); return; in print_reg_class()
71 case RegClass::v2: fprintf(output, " v2: "); return; in print_reg_class()
72 case RegClass::v3: fprintf(output, " v3: "); return; in print_reg_class()
73 case RegClass::v4: fprintf(output, " v4: "); return; in print_reg_class()
74 case RegClass::v5: fprintf(output, " v5: "); return; in print_reg_class()
75 case RegClass::v6: fprintf(output, " v6: "); return; in print_reg_class()
76 case RegClass::v7: fprintf(output, " v7: "); return; in print_reg_class()
77 case RegClass::v8: fprintf(output, " v8: "); return; in print_reg_class()
78 case RegClass::v1b: fprintf(output, " v1b: "); return; in print_reg_class()
79 case RegClass::v2b: fprintf(output, " v2b: "); return; in print_reg_class()
80 case RegClass::v3b: fprintf(output, " v3b: "); return; in print_reg_class()
81 case RegClass::v4b: fprintf(output, " v4b: "); return; in print_reg_class()
82 case RegClass::v6b: fprintf(output, " v6b: "); return; in print_reg_class()
83 case RegClass::v8b: fprintf(output, " v8b: "); return; in print_reg_class()
84 case RegClass::v1_linear: fprintf(output, " v1: "); return; in print_reg_class()
85 case RegClass::v2_linear: fprintf(output, " v2: "); return; in print_reg_class()
89 void print_physReg(PhysReg reg, unsigned bytes, FILE *output) in print_physReg() argument
92 fprintf(output, ":m0"); in print_physReg()
94 fprintf(output, ":vcc"); in print_physReg()
96 fprintf(output, ":scc"); in print_physReg()
98 fprintf(output, ":exec"); in print_physReg()
103 fprintf(output, ":%c[%d", is_vgpr ? 'v' : 's', r); in print_physReg()
105 fprintf(output, "-%d]", r + size -1); in print_physReg()
107 fprintf(output, "]"); in print_physReg()
109 fprintf(output, "[%d:%d]", reg.byte()*8, (reg.byte()+bytes) * 8); in print_physReg()
113 static void print_constant(uint8_t reg, FILE *output) in print_constant() argument
116 fprintf(output, "%d", reg - 128); in print_constant()
119 fprintf(output, "%d", 192 - reg); in print_constant()
125 fprintf(output, "0.5"); in print_constant()
128 fprintf(output, "-0.5"); in print_constant()
131 fprintf(output, "1.0"); in print_constant()
134 fprintf(output, "-1.0"); in print_constant()
137 fprintf(output, "2.0"); in print_constant()
140 fprintf(output, "-2.0"); in print_constant()
143 fprintf(output, "4.0"); in print_constant()
146 fprintf(output, "-4.0"); in print_constant()
149 fprintf(output, "1/(2*PI)"); in print_constant()
154 static void print_operand(const Operand *operand, FILE *output) in print_operand() argument
158 fprintf(output, "0x%.2x", operand->constantValue()); in print_operand()
160 fprintf(output, "0x%.4x", operand->constantValue()); in print_operand()
162 fprintf(output, "0x%x", operand->constantValue()); in print_operand()
164 print_constant(operand->physReg().reg(), output); in print_operand()
166 print_reg_class(operand->regClass(), output); in print_operand()
167 fprintf(output, "undef"); in print_operand()
170 fprintf(output, "(latekill)"); in print_operand()
172 fprintf(output, "%%%d", operand->tempId()); in print_operand()
175 print_physReg(operand->physReg(), operand->bytes(), output); in print_operand()
179 static void print_definition(const Definition *definition, FILE *output) in print_definition() argument
181 print_reg_class(definition->regClass(), output); in print_definition()
183 fprintf(output, "(precise)"); in print_definition()
185 fprintf(output, "(nuw)"); in print_definition()
186 fprintf(output, "%%%d", definition->tempId()); in print_definition()
189 print_physReg(definition->physReg(), definition->bytes(), output); in print_definition()
192 static void print_storage(storage_class storage, FILE *output) in print_storage() argument
194 fprintf(output, " storage:"); in print_storage()
197 printed += fprintf(output, "%sbuffer", printed ? "," : ""); in print_storage()
199 printed += fprintf(output, "%satomic_counter", printed ? "," : ""); in print_storage()
201 printed += fprintf(output, "%simage", printed ? "," : ""); in print_storage()
203 printed += fprintf(output, "%sshared", printed ? "," : ""); in print_storage()
205 printed += fprintf(output, "%svmem_output", printed ? "," : ""); in print_storage()
207 printed += fprintf(output, "%sscratch", printed ? "," : ""); in print_storage()
209 printed += fprintf(output, "%svgpr_spill", printed ? "," : ""); in print_storage()
212 static void print_semantics(memory_semantics sem, FILE *output) in print_semantics() argument
214 fprintf(output, " semantics:"); in print_semantics()
217 printed += fprintf(output, "%sacquire", printed ? "," : ""); in print_semantics()
219 printed += fprintf(output, "%srelease", printed ? "," : ""); in print_semantics()
221 printed += fprintf(output, "%svolatile", printed ? "," : ""); in print_semantics()
223 printed += fprintf(output, "%sprivate", printed ? "," : ""); in print_semantics()
225 printed += fprintf(output, "%sreorder", printed ? "," : ""); in print_semantics()
227 printed += fprintf(output, "%satomic", printed ? "," : ""); in print_semantics()
229 printed += fprintf(output, "%srmw", printed ? "," : ""); in print_semantics()
232 static void print_scope(sync_scope scope, FILE *output, const char *prefix="scope") in print_scope() argument
234 fprintf(output, " %s:", prefix); in print_scope()
237 fprintf(output, "invocation"); in print_scope()
240 fprintf(output, "subgroup"); in print_scope()
243 fprintf(output, "workgroup"); in print_scope()
246 fprintf(output, "queuefamily"); in print_scope()
249 fprintf(output, "device"); in print_scope()
254 static void print_sync(memory_sync_info sync, FILE *output) in print_sync() argument
256 print_storage(sync.storage, output); in print_sync()
257 print_semantics(sync.semantics, output); in print_sync()
258 print_scope(sync.scope, output); in print_sync()
261 static void print_instr_format_specific(const Instruction *instr, FILE *output) in print_instr_format_specific() argument
266 fprintf(output, " imm:%d", sopk->imm & 0x8000 ? (sopk->imm - 65536) : sopk->imm); in print_instr_format_specific()
277 if (vmcnt != 63) fprintf(output, " vmcnt(%d)", vmcnt); in print_instr_format_specific()
278 if (((imm >> 4) & 0x7) < 0x7) fprintf(output, " expcnt(%d)", (imm >> 4) & 0x7); in print_instr_format_specific()
279 if (((imm >> 8) & 0x3F) < 0x3F) fprintf(output, " lgkmcnt(%d)", (imm >> 8) & 0x3F); in print_instr_format_specific()
296 fprintf(output, " sendmsg(MSG_NONE)"); in print_instr_format_specific()
299 fprintf(output, " sendmsg(gs%s%s, %u)", in print_instr_format_specific()
303 fprintf(output, " sendmsg(gs_done%s%s, %u)", in print_instr_format_specific()
307 fprintf(output, " sendmsg(save_wave)"); in print_instr_format_specific()
310 fprintf(output, " sendmsg(stall_wave_gen)"); in print_instr_format_specific()
313 fprintf(output, " sendmsg(halt_waves)"); in print_instr_format_specific()
316 fprintf(output, " sendmsg(ordered_ps_done)"); in print_instr_format_specific()
319 fprintf(output, " sendmsg(early_prim_dealloc)"); in print_instr_format_specific()
322 fprintf(output, " sendmsg(gs_alloc_req)"); in print_instr_format_specific()
329 fprintf(output, " imm:%u", imm); in print_instr_format_specific()
334 fprintf(output, " block:BB%d", sopp->block); in print_instr_format_specific()
340 fprintf(output, " glc"); in print_instr_format_specific()
342 fprintf(output, " dlc"); in print_instr_format_specific()
344 fprintf(output, " nv"); in print_instr_format_specific()
345 print_sync(smem->sync, output); in print_instr_format_specific()
350 fprintf(output, " attr%d.%c", vintrp->attribute, "xyzw"[vintrp->component]); in print_instr_format_specific()
356 fprintf(output, " offset0:%u", ds->offset0); in print_instr_format_specific()
358 fprintf(output, " offset1:%u", ds->offset1); in print_instr_format_specific()
360 fprintf(output, " gds"); in print_instr_format_specific()
361 print_sync(ds->sync, output); in print_instr_format_specific()
367 fprintf(output, " offset:%u", mubuf->offset); in print_instr_format_specific()
369 fprintf(output, " offen"); in print_instr_format_specific()
371 fprintf(output, " idxen"); in print_instr_format_specific()
373 fprintf(output, " addr64"); in print_instr_format_specific()
375 fprintf(output, " glc"); in print_instr_format_specific()
377 fprintf(output, " dlc"); in print_instr_format_specific()
379 fprintf(output, " slc"); in print_instr_format_specific()
381 fprintf(output, " tfe"); in print_instr_format_specific()
383 fprintf(output, " lds"); in print_instr_format_specific()
385 fprintf(output, " disable_wqm"); in print_instr_format_specific()
386 print_sync(mubuf->sync, output); in print_instr_format_specific()
395 fprintf(output, " dmask:%s%s%s%s", in print_instr_format_specific()
402 fprintf(output, " 1d"); in print_instr_format_specific()
405 fprintf(output, " 2d"); in print_instr_format_specific()
408 fprintf(output, " 3d"); in print_instr_format_specific()
411 fprintf(output, " cube"); in print_instr_format_specific()
414 fprintf(output, " 1darray"); in print_instr_format_specific()
417 fprintf(output, " 2darray"); in print_instr_format_specific()
420 fprintf(output, " 2dmsaa"); in print_instr_format_specific()
423 fprintf(output, " 2darraymsaa"); in print_instr_format_specific()
427 fprintf(output, " unrm"); in print_instr_format_specific()
429 fprintf(output, " glc"); in print_instr_format_specific()
431 fprintf(output, " dlc"); in print_instr_format_specific()
433 fprintf(output, " slc"); in print_instr_format_specific()
435 fprintf(output, " tfe"); in print_instr_format_specific()
437 fprintf(output, " da"); in print_instr_format_specific()
439 fprintf(output, " lwe"); in print_instr_format_specific()
441 fprintf(output, " r128/a16"); in print_instr_format_specific()
443 fprintf(output, " d16"); in print_instr_format_specific()
445 fprintf(output, " disable_wqm"); in print_instr_format_specific()
446 print_sync(mimg->sync, output); in print_instr_format_specific()
453 fprintf(output, " en:%c%c%c%c", in print_instr_format_specific()
459 fprintf(output, " compr"); in print_instr_format_specific()
461 fprintf(output, " done"); in print_instr_format_specific()
463 fprintf(output, " vm"); in print_instr_format_specific()
466 fprintf(output, " mrt%d", exp->dest - V_008DFC_SQ_EXP_MRT); in print_instr_format_specific()
468 fprintf(output, " mrtz"); in print_instr_format_specific()
470 fprintf(output, " null"); in print_instr_format_specific()
472 fprintf(output, " pos%d", exp->dest - V_008DFC_SQ_EXP_POS); in print_instr_format_specific()
474 fprintf(output, " param%d", exp->dest - V_008DFC_SQ_EXP_PARAM); in print_instr_format_specific()
481 fprintf(output, " BB%d", branch->target[0]); in print_instr_format_specific()
483 fprintf(output, ", BB%d", branch->target[1]); in print_instr_format_specific()
488 fprintf(output, " op:%s", reduce_ops[reduce->reduce_op]); in print_instr_format_specific()
490 fprintf(output, " cluster_size:%u", reduce->cluster_size); in print_instr_format_specific()
495 print_sync(barrier->sync, output); in print_instr_format_specific()
496 print_scope(barrier->exec_scope, output, "exec_scope"); in print_instr_format_specific()
504 fprintf(output, " offset:%u", flat->offset); in print_instr_format_specific()
506 fprintf(output, " glc"); in print_instr_format_specific()
508 fprintf(output, " dlc"); in print_instr_format_specific()
510 fprintf(output, " slc"); in print_instr_format_specific()
512 fprintf(output, " lds"); in print_instr_format_specific()
514 fprintf(output, " nv"); in print_instr_format_specific()
516 fprintf(output, " disable_wqm"); in print_instr_format_specific()
517 print_sync(flat->sync, output); in print_instr_format_specific()
522 fprintf(output, " dfmt:"); in print_instr_format_specific()
524 case V_008F0C_BUF_DATA_FORMAT_8: fprintf(output, "8"); break; in print_instr_format_specific()
525 case V_008F0C_BUF_DATA_FORMAT_16: fprintf(output, "16"); break; in print_instr_format_specific()
526 case V_008F0C_BUF_DATA_FORMAT_8_8: fprintf(output, "8_8"); break; in print_instr_format_specific()
527 case V_008F0C_BUF_DATA_FORMAT_32: fprintf(output, "32"); break; in print_instr_format_specific()
528 case V_008F0C_BUF_DATA_FORMAT_16_16: fprintf(output, "16_16"); break; in print_instr_format_specific()
529 case V_008F0C_BUF_DATA_FORMAT_10_11_11: fprintf(output, "10_11_11"); break; in print_instr_format_specific()
530 case V_008F0C_BUF_DATA_FORMAT_11_11_10: fprintf(output, "11_11_10"); break; in print_instr_format_specific()
531 case V_008F0C_BUF_DATA_FORMAT_10_10_10_2: fprintf(output, "10_10_10_2"); break; in print_instr_format_specific()
532 case V_008F0C_BUF_DATA_FORMAT_2_10_10_10: fprintf(output, "2_10_10_10"); break; in print_instr_format_specific()
533 case V_008F0C_BUF_DATA_FORMAT_8_8_8_8: fprintf(output, "8_8_8_8"); break; in print_instr_format_specific()
534 case V_008F0C_BUF_DATA_FORMAT_32_32: fprintf(output, "32_32"); break; in print_instr_format_specific()
535 case V_008F0C_BUF_DATA_FORMAT_16_16_16_16: fprintf(output, "16_16_16_16"); break; in print_instr_format_specific()
536 case V_008F0C_BUF_DATA_FORMAT_32_32_32: fprintf(output, "32_32_32"); break; in print_instr_format_specific()
537 case V_008F0C_BUF_DATA_FORMAT_32_32_32_32: fprintf(output, "32_32_32_32"); break; in print_instr_format_specific()
538 case V_008F0C_BUF_DATA_FORMAT_RESERVED_15: fprintf(output, "reserved15"); break; in print_instr_format_specific()
540 fprintf(output, " nfmt:"); in print_instr_format_specific()
542 case V_008F0C_BUF_NUM_FORMAT_UNORM: fprintf(output, "unorm"); break; in print_instr_format_specific()
543 case V_008F0C_BUF_NUM_FORMAT_SNORM: fprintf(output, "snorm"); break; in print_instr_format_specific()
544 case V_008F0C_BUF_NUM_FORMAT_USCALED: fprintf(output, "uscaled"); break; in print_instr_format_specific()
545 case V_008F0C_BUF_NUM_FORMAT_SSCALED: fprintf(output, "sscaled"); break; in print_instr_format_specific()
546 case V_008F0C_BUF_NUM_FORMAT_UINT: fprintf(output, "uint"); break; in print_instr_format_specific()
547 case V_008F0C_BUF_NUM_FORMAT_SINT: fprintf(output, "sint"); break; in print_instr_format_specific()
548 case V_008F0C_BUF_NUM_FORMAT_SNORM_OGL: fprintf(output, "snorm"); break; in print_instr_format_specific()
549 case V_008F0C_BUF_NUM_FORMAT_FLOAT: fprintf(output, "float"); break; in print_instr_format_specific()
552 fprintf(output, " offset:%u", mtbuf->offset); in print_instr_format_specific()
554 fprintf(output, " offen"); in print_instr_format_specific()
556 fprintf(output, " idxen"); in print_instr_format_specific()
558 fprintf(output, " glc"); in print_instr_format_specific()
560 fprintf(output, " dlc"); in print_instr_format_specific()
562 fprintf(output, " slc"); in print_instr_format_specific()
564 fprintf(output, " tfe"); in print_instr_format_specific()
566 fprintf(output, " disable_wqm"); in print_instr_format_specific()
567 print_sync(mtbuf->sync, output); in print_instr_format_specific()
572 fprintf(output, " clamp"); in print_instr_format_specific()
583 fprintf(output, " *2"); in print_instr_format_specific()
586 fprintf(output, " *4"); in print_instr_format_specific()
589 fprintf(output, " *0.5"); in print_instr_format_specific()
593 fprintf(output, " clamp"); in print_instr_format_specific()
595 fprintf(output, " opsel_hi"); in print_instr_format_specific()
599 fprintf(output, " quad_perm:[%d,%d,%d,%d]", in print_instr_format_specific()
603 fprintf(output, " row_shl:%d", dpp->dpp_ctrl & 0xf); in print_instr_format_specific()
605 fprintf(output, " row_shr:%d", dpp->dpp_ctrl & 0xf); in print_instr_format_specific()
607 fprintf(output, " row_ror:%d", dpp->dpp_ctrl & 0xf); in print_instr_format_specific()
609 fprintf(output, " wave_shl:1"); in print_instr_format_specific()
611 fprintf(output, " wave_rol:1"); in print_instr_format_specific()
613 fprintf(output, " wave_shr:1"); in print_instr_format_specific()
615 fprintf(output, " wave_ror:1"); in print_instr_format_specific()
617 fprintf(output, " row_mirror"); in print_instr_format_specific()
619 fprintf(output, " row_half_mirror"); in print_instr_format_specific()
621 fprintf(output, " row_bcast:15"); in print_instr_format_specific()
623 fprintf(output, " row_bcast:31"); in print_instr_format_specific()
625 fprintf(output, " dpp_ctrl:0x%.3x", dpp->dpp_ctrl); in print_instr_format_specific()
628 fprintf(output, " row_mask:0x%.1x", dpp->row_mask); in print_instr_format_specific()
630 fprintf(output, " bank_mask:0x%.1x", dpp->bank_mask); in print_instr_format_specific()
632 fprintf(output, " bound_ctrl:1"); in print_instr_format_specific()
637 fprintf(output, " *2"); in print_instr_format_specific()
640 fprintf(output, " *4"); in print_instr_format_specific()
643 fprintf(output, " *0.5"); in print_instr_format_specific()
647 fprintf(output, " clamp"); in print_instr_format_specific()
655 fprintf(output, " dst_sel:%sbyte%u", sdwa->dst_sel & sdwa_sext ? "s" : "u", in print_instr_format_specific()
660 fprintf(output, " dst_sel:%sword%u", sdwa->dst_sel & sdwa_sext ? "s" : "u", in print_instr_format_specific()
665 fprintf(output, " dst_preserve"); in print_instr_format_specific()
669 void aco_print_instr(const Instruction *instr, FILE *output) in aco_print_instr() argument
673 print_definition(&instr->definitions[i], output); in aco_print_instr()
675 fprintf(output, ", "); in aco_print_instr()
677 fprintf(output, " = "); in aco_print_instr()
679 fprintf(output, "%s", instr_info.name[(int)instr->opcode]); in aco_print_instr()
719 fprintf(output, ", "); in aco_print_instr()
721 fprintf(output, " "); in aco_print_instr()
724 fprintf(output, "-"); in aco_print_instr()
726 fprintf(output, "|"); in aco_print_instr()
728 fprintf(output, "hi("); in aco_print_instr()
730 fprintf(output, "sext("); in aco_print_instr()
731 print_operand(&instr->operands[i], output); in aco_print_instr()
733 fprintf(output, ")"); in aco_print_instr()
739 fprintf(output, "[%u:%u]", index * 16, index * 16 + 15); in aco_print_instr()
742 fprintf(output, "[%u:%u]", index * 8, index * 8 + 7); in aco_print_instr()
746 fprintf(output, "|"); in aco_print_instr()
751 fprintf(output, ".%c%c", in aco_print_instr()
756 fprintf(output, "*[-1,-1]"); in aco_print_instr()
758 fprintf(output, "*[-1,1]"); in aco_print_instr()
760 fprintf(output, "*[1,-1]"); in aco_print_instr()
764 print_instr_format_specific(instr, output); in aco_print_instr()
767 static void print_block_kind(uint16_t kind, FILE *output) in print_block_kind() argument
770 fprintf(output, "uniform, "); in print_block_kind()
772 fprintf(output, "top-level, "); in print_block_kind()
774 fprintf(output, "loop-preheader, "); in print_block_kind()
776 fprintf(output, "loop-header, "); in print_block_kind()
778 fprintf(output, "loop-exit, "); in print_block_kind()
780 fprintf(output, "continue, "); in print_block_kind()
782 fprintf(output, "break, "); in print_block_kind()
784 fprintf(output, "continue_or_break, "); in print_block_kind()
786 fprintf(output, "discard, "); in print_block_kind()
788 fprintf(output, "branch, "); in print_block_kind()
790 fprintf(output, "merge, "); in print_block_kind()
792 fprintf(output, "invert, "); in print_block_kind()
794 fprintf(output, "discard_if, "); in print_block_kind()
796 fprintf(output, "needs_lowering, "); in print_block_kind()
798 fprintf(output, "uses_demote, "); in print_block_kind()
800 fprintf(output, "export_end, "); in print_block_kind()
803 static void print_stage(Stage stage, FILE *output) in print_stage() argument
805 fprintf(output, "ACO shader stage: "); in print_stage()
808 fprintf(output, "compute_cs"); in print_stage()
810 fprintf(output, "fragment_fs"); in print_stage()
812 fprintf(output, "gs_copy_vs"); in print_stage()
814 fprintf(output, "vertex_ls"); in print_stage()
816 fprintf(output, "vertex_es"); in print_stage()
818 fprintf(output, "vertex_vs"); in print_stage()
820 fprintf(output, "tess_control_hs"); in print_stage()
822 fprintf(output, "vertex_tess_control_hs"); in print_stage()
824 fprintf(output, "tess_eval_es"); in print_stage()
826 fprintf(output, "tess_eval_vs"); in print_stage()
828 fprintf(output, "geometry_gs"); in print_stage()
830 fprintf(output, "vertex_geometry_gs"); in print_stage()
832 fprintf(output, "tess_eval_geometry_gs"); in print_stage()
834 fprintf(output, "vertex_ngg"); in print_stage()
836 fprintf(output, "tess_eval_ngg"); in print_stage()
838 fprintf(output, "vertex_geometry_ngg"); in print_stage()
840 fprintf(output, "tess_eval_geometry_ngg"); in print_stage()
842 fprintf(output, "unknown"); in print_stage()
844 fprintf(output, "\n"); in print_stage()
847 void aco_print_block(const Block* block, FILE *output) in aco_print_block() argument
849 fprintf(output, "BB%d\n", block->index); in aco_print_block()
850 fprintf(output, "/* logical preds: "); in aco_print_block()
852 fprintf(output, "BB%d, ", pred); in aco_print_block()
853 fprintf(output, "/ linear preds: "); in aco_print_block()
855 fprintf(output, "BB%d, ", pred); in aco_print_block()
856 fprintf(output, "/ kind: "); in aco_print_block()
857 print_block_kind(block->kind, output); in aco_print_block()
858 fprintf(output, "*/\n"); in aco_print_block()
860 fprintf(output, "\t"); in aco_print_block()
861 aco_print_instr(instr.get(), output); in aco_print_block()
862 fprintf(output, "\n"); in aco_print_block()
866 void aco_print_program(const Program *program, FILE *output) in aco_print_program() argument
868 print_stage(program->stage, output); in aco_print_program()
871 aco_print_block(&block, output); in aco_print_program()
874 fprintf(output, "\n/* constant data */\n"); in aco_print_program()
876 fprintf(output, "[%06d] ", i); in aco_print_program()
882 fprintf(output, " %08x", v); in aco_print_program()
884 fprintf(output, "\n"); in aco_print_program()
888 fprintf(output, "\n"); in aco_print_program()