summaryrefslogtreecommitdiff
path: root/src/amd/compiler/aco_print_ir.cpp
diff options
context:
space:
mode:
authorRhys Perry <pendingchaos02@gmail.com>2023-05-24 16:24:35 +0100
committerMarge Bot <emma+marge@anholt.net>2023-05-30 12:42:00 +0000
commit94958e637d11d9dbe9345da1a8ff4048ef441389 (patch)
tree47b69bb13ffe81e96afd17d33750154d94f44592 /src/amd/compiler/aco_print_ir.cpp
parent54c0088629f653640b48b70eb35c8424eaf70cb6 (diff)
aco: improve printing of s_delay_alu
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Georg Lehmann <dadschoorse@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23213>
Diffstat (limited to 'src/amd/compiler/aco_print_ir.cpp')
-rw-r--r--src/amd/compiler/aco_print_ir.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/amd/compiler/aco_print_ir.cpp b/src/amd/compiler/aco_print_ir.cpp
index c069baa368c..37db33230e4 100644
--- a/src/amd/compiler/aco_print_ir.cpp
+++ b/src/amd/compiler/aco_print_ir.cpp
@@ -322,6 +322,31 @@ print_instr_format_specific(enum amd_gfx_level gfx_level, const Instruction* ins
fprintf(output, " sa_sdst(%d)", sa_sdst);
break;
}
+ case aco_opcode::s_delay_alu: {
+ unsigned delay[2] = {imm & 0xfu, (imm >> 7) & 0xfu};
+ unsigned skip = (imm >> 4) & 0x3;
+ for (unsigned i = 0; i < 2; i++) {
+ if (i == 1 && skip) {
+ if (skip == 1)
+ fprintf(output, " next");
+ else
+ fprintf(output, " skip_%u", skip - 1);
+ }
+
+ alu_delay_wait wait = (alu_delay_wait)delay[i];
+ if (wait >= alu_delay_wait::VALU_DEP_1 && wait <= alu_delay_wait::VALU_DEP_4)
+ fprintf(output, " valu_dep_%u", delay[i]);
+ else if (wait >= alu_delay_wait::TRANS32_DEP_1 && wait <= alu_delay_wait::TRANS32_DEP_3)
+ fprintf(output, " trans32_dep_%u",
+ delay[i] - (unsigned)alu_delay_wait::TRANS32_DEP_1 + 1);
+ else if (wait == alu_delay_wait::FMA_ACCUM_CYCLE_1)
+ fprintf(output, " fma_accum_cycle_1");
+ else if (wait >= alu_delay_wait::SALU_CYCLE_1 && wait <= alu_delay_wait::SALU_CYCLE_3)
+ fprintf(output, " salu_cycle_%u",
+ delay[i] - (unsigned)alu_delay_wait::SALU_CYCLE_1 + 1);
+ }
+ break;
+ }
case aco_opcode::s_endpgm:
case aco_opcode::s_endpgm_saved:
case aco_opcode::s_endpgm_ordered_ps_done: