diff --git a/src/amd/compiler/aco_interface.cpp b/src/amd/compiler/aco_interface.cpp index b405fbd82cb..9c428048046 100644 --- a/src/amd/compiler/aco_interface.cpp +++ b/src/amd/compiler/aco_interface.cpp @@ -59,6 +59,7 @@ static const std::array statist ret[aco_statistic_salu] = aco_compiler_statistic_info{"SALU", "Number of SALU instructions"}; ret[aco_statistic_vmem] = aco_compiler_statistic_info{"VMEM", "Number of VMEM instructions"}; ret[aco_statistic_smem] = aco_compiler_statistic_info{"SMEM", "Number of SMEM instructions"}; + ret[aco_statistic_vopd] = aco_compiler_statistic_info{"VOPD", "Number of VOPD instructions"}; return ret; }(); diff --git a/src/amd/compiler/aco_shader_info.h b/src/amd/compiler/aco_shader_info.h index e6ff2c8a5f7..bfe8071dee2 100644 --- a/src/amd/compiler/aco_shader_info.h +++ b/src/amd/compiler/aco_shader_info.h @@ -228,6 +228,7 @@ enum aco_statistic { aco_statistic_salu, aco_statistic_vmem, aco_statistic_smem, + aco_statistic_vopd, aco_num_statistics }; diff --git a/src/amd/compiler/aco_statistics.cpp b/src/amd/compiler/aco_statistics.cpp index e454c2de93b..5eb202b8ba7 100644 --- a/src/amd/compiler/aco_statistics.cpp +++ b/src/amd/compiler/aco_statistics.cpp @@ -540,6 +540,8 @@ collect_preasm_stats(Program* program) if (instr->isSALU() && !instr->isSOPP() && instr_info.classes[(int)instr->opcode] != instr_class::waitcnt) program->statistics[aco_statistic_salu]++; + if (instr->isVOPD()) + program->statistics[aco_statistic_vopd]++; if ((instr->isVMEM() || instr->isScratch() || instr->isGlobal()) && !instr->operands.empty()) {