diff --git a/src/amd/compiler/aco_interface.cpp b/src/amd/compiler/aco_interface.cpp index 548b7dbaa80..ed4ffc18d40 100644 --- a/src/amd/compiler/aco_interface.cpp +++ b/src/amd/compiler/aco_interface.cpp @@ -499,3 +499,18 @@ aco_nir_op_supports_packed_math_16bit(const nir_alu_instr* alu) } const aco_compiler_statistic_info* aco_statistic_infos = statistic_infos.data(); + +void +aco_print_asm(const struct radeon_info *info, unsigned wave_size, + uint32_t *binary, unsigned num_dw) +{ + std::vector binarray(binary, binary + num_dw); + aco::Program prog; + + prog.gfx_level = info->gfx_level; + prog.family = info->family; + prog.wave_size = wave_size; + prog.blocks.push_back(aco::Block()); + + aco::print_asm(&prog, binarray, num_dw, stderr); +} diff --git a/src/amd/compiler/aco_interface.h b/src/amd/compiler/aco_interface.h index 1275091cb18..d0c3fca22ce 100644 --- a/src/amd/compiler/aco_interface.h +++ b/src/amd/compiler/aco_interface.h @@ -100,6 +100,9 @@ bool aco_is_gpu_supported(const struct radeon_info* info); bool aco_nir_op_supports_packed_math_16bit(const nir_alu_instr* alu); +void aco_print_asm(const struct radeon_info *info, unsigned wave_size, + uint32_t *binary, unsigned num_dw); + #ifdef __cplusplus } #endif